kotlin коллбек, function literal with receiver

В функцию SharedPreferences.edit передается коллбек action. Коллбек задан как ()->Unit, то есть на вход этот коллбек ничего не принимает. Почему тогда в теле функции SharedPreferences.edit в коллбек action передается объект editor?

fun SharedPreferences.edit(
        action: SharedPreferences.Editor.()->Unit
){
    val editor = edit()
    action(editor) //Что делает эта строка?
    editor.commit()
}

Ответы (1 шт):

Автор решения: Igor

Коллбек задан как ()->Unit

Коллбек задан как метод-расширение класса SharedPreferences.Editor. Он может быть вызван как статический метод с экземпляром SharedPreferences.Editor, передаваемым туда первым параметром.

→ Ссылка