Skip to content

Commit c42f471

Browse files
committed
docs: fix lambda call section according discussion
1 parent 2f77b2a commit c42f471

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

Diff for: README.md

+11-2
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,13 @@ setAdditionalArguments(arguments = null)
140140

141141
### Вызов переменной функционального типа
142142

143-
Если отсутствуют договоренности внутри проекта, допускается сокращенный вызов лямбды без `invoke`:
143+
Если отсутствуют договоренности внутри проекта, допускается вызов лямбды как с `invoke`, так и сокращенный вариант `()`.
144+
145+
> [!TIP]
146+
> Одной из основных причин использования явного `invoke` является концептуальное разделение функции как члена класса и лямбды как входного параметра функции.
147+
> Используя `invoke` явно, мы показываем, что используем лямбду, а не функцию.
148+
>
149+
> При этом дополнительным аргументом к использованию `invoke` является его заметность. Вызывая лямбду без `invoke`, у нее можно потерять скобки в месте вызова, что приведет к некорректному поведению.
144150
145151
```kotlin
146152
@Composable
@@ -151,10 +157,13 @@ fun ProfileScreenContent(
151157
) {
152158
LazyColumn {
153159
item(content = header)
160+
161+
// Bad
162+
body
154163
// Good
155164
body()
156-
// Optional
157165
body.invoke(this@LazyColumn)
166+
158167
item(content = footer)
159168
}
160169
}

0 commit comments

Comments
 (0)