item types" и где они могут быть полезны?
Все функции лямбды. Значит любая функция является кандидатом на инлайнинг (и на практике они все практически инлайнятся без атрибутов), даже когда передаёшь их куда-то (потому что чаще всего требуют Fn* трейты вместо фн поинтеров). Алсо они занимают 0 байт места в структуре, что тоже приятно.
fn foo() { let f = foo; // <- зачем вот это нужно, где оно используется? f(); }
Везде, где лямбды нужны
https://doc.rust-lang.org/src/core/option.rs.html#1070-1072
Я разве "Closure types" и "Function item types" это не разные вещи?
Можно считать это как сахар
Function item type и closure type оба типы, только одни имплят Fn* трейты для фн айтемов, а другие для замыканий (как синтаксической конструкции), вот и вся разница
Обсуждают сегодня