котлин код на гитхабе и гитлабе, но я ни разу не встречал в реальном коде вложенные функции аля
fun foo1() {
fun foo2() = Unit
foo2()
}
Почему так выходит?🤔 Мб, это бед практик? Или просто не прижилось? Я буквально случайно вспомнил сейчас об этой фиче.
потому что: 1) мало кто знает о них 2) те, кто знает о них, ими не пользуются, ибо зачем? 3) реальные случаи для их использования довольно редки
Использовал несколько раз. Удобно, когда нужно ограничить область видимости куска кода. Но выглядит достаточно некрасиво.
Я использую как замену do { ... if (something) break ... } while (false) или для того, чтобы вынести часть логики (как обычные функции), которая использует захваченные переменные. fun analyze(methodNode: MethodNode) { fun AbstractInsnNode.index() = methodNode.instructions.indexOf(this) ... }
Рекурсии видимо редко пишешь)
у меня недавно было, в отличие от простой лямбды, референсы такой функции могут инлайнится
Я регулярно использую. Это просто привычка с джавы, где их нет. Как только начинаешь использовать, дальше проблем нет.
Я постоянно пользуюсь, как описали выше, частенько пишется тейлрек с аккумулятором так, или очень часто захватываются переменные
Обсуждают сегодня