https://kotlinlang.org logo
Title
u

123

05/29/2018, 6:26 PM
правильно ли я понимаю, что основные отличия inline функций от обычных лямбд: 1. нет оверхеда т.к. просто копируется кусок кода (это очевидное) 2. inline нельзя передать в другую функцию, а лямбду можно, поэтому там и генерируется анонимный класс
s

semoro

05/29/2018, 7:52 PM
2. можно, если пометить лямбда-параметер crossinline
👍 1
1. Именно так, а ещё можно использовать reified generic type parameters - такие generic-и, которые не стираются на runtime
v

voddan

05/30/2018, 4:27 AM
3. Возможный существенный оверхед из-за дубликации байткода
u

123

05/30/2018, 4:49 AM
@voddan это для каких именно функций? инлайн?
v

voddan

05/30/2018, 5:41 AM
@123 для любой инлайн функции которая содержит хотя бы несколько операций. Эффект зависит от конкретного случая