Функции области видимости — это функции стандартной библиотеки, которые выполняют блок кода в контексте объекта, позволяя тебе выполнять операции над этим объектом без повторного обращения к нему по имени. Есть пять функций области видимости: let, run, with, also и apply.
Пять функций области видимости отличаются по двум параметрам:
this (неявный receiver) или it (параметр лямбды)Функция | Ссылка | Возвращает
--------|--------|---------------
let | it | Результат лямбды
run | this | Результат лямбды
with | this | Результат лямбды
also | it | Объект контекста
apply | this | Объект контекста
let для null-safe операций или преобразования объекта в другой результатrun для конфигурации объекта в сочетании с вычислением результатаwith, когда нужно вызвать несколько методов на объекте без цепочки вызововalso для побочных эффектов, например логирования, когда исходный объект должен вернуться без измененийapply для инициализации объекта или конфигурации в стиле builderВыбор между функциями области видимости сводится к двум вопросам:
apply, also) или вычисленный результат (let, run, with)?this для доступа к членам или как it для ясности во вложенных областях видимости?Функция скопа apply использует this как ссылку на контекстный объект и возвращает сам контекстный объект, что делает её идеальной для инициализации объектов и конфигурации в стиле builder.
Новый — ещё не проверен сообществом
Вы