Что такое type inference в generics?

Middle
201 просмотров
AFK Offer AI

Type inference — компилятор сам определяет type arguments из обычных аргументов функции. Вместо Filter[int](nums, isPositive) пишешь Filter(nums, isPositive) — компилятор видит что nums это []int, значит T = int. Работает в большинстве случаев. Не работает когда возвращаемый тип не связан с аргументами, или при неоднозначности. Тогда указываешь явно. Для структур inference не работает — Stack[int]{} нельзя написать как Stack{} с int элементами.

Следующий вопрос

Что не так: resp, err := http.Get(url); if err != nil { log.Fatal(err) }; body, _ := io.ReadAll(resp.Body)?