Комментарии 2
Во втором примере описка
До вывода типов:
func generate_nums(count: ?1) -> ?2 {
var a: ?3 = [];
...
return a;
}
Сам вывод типов:
?2 = Array<int>
?3 = Array<int>
После подстановки тип ?2
равен int
вместо List<int>
func generate_nums(count: int) -> int {
var a: List<int> = [];
for (var i: int = 0; i < count; i++) {
a.insert(i);
}
return a;
}
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Реализуем Type inference на Rust — Часть #1: Unification