Kotlin назвал синтаксис параметров для закрытия / лямбда

Я создал следующую функцию:

public fun storeImage(image: BufferedImage, toPath: String, onCompletion: (contentURL: URL) -> Unit) { val file = File(this.storageDirectory, toPath) log.debug("storing image: ${file.absolutePath}") val extension = toPath.extensionOrNull() if (!file.exists()) { file.parentFile.mkdirs() file.createNewFile() } ImageIO.write(image, extension!!, FileOutputStream(file.absolutePath)) onCompletion(URL(contentBaseUrl, toPath)) } 

Я вижу, что могу назвать это так:

 contentManager.storeImage(image, "1234/Foobar.jpg", onCompletion = { println("$it") }) 

Или я могу использовать синтаксис закрывающего закрытия:

 contentManager.storeImage(image, "1234/Foobar.jpg") { println("$it") } 

Но как мне вызвать метод образа хранилища и вызвать функцию onCompletion с помощью именованных параметров?

Редактировать / Пример:

Я хотел бы вызвать метод storeImage используя синтаксис, подобный:

 contentManager.storeImage(image, "1234/Foobar.jpg", onCompletion = (bar: URL) : Unit -> { //do something with bar } 

Я не мог найти правильный синтаксис в документах для такого типа вещей.

Вы можете использовать регулярный синтаксис для присвоения имен лямбда-параметрам. Это работает независимо от того, используете ли вы именованный аргумент для передачи лямбда функции.

 contentManager.storeImage(image, "1234/Foobar.jpg", onCompletion = { bar -> //do something with bar }) 
Intereting Posts
Как остановить службу уведомления на Android Oreo Можем ли мы определить наши аксессоры без значения init? Связанные вызовы и наследование Ошибка: супертипы следующих классов не могут быть разрешены. Убедитесь, что у вас есть необходимые зависимости в пути к классам Недвижимость в интерфейсе не может иметь поле подкладочный Проводка в пользовательский интерфейс Joda DateTime Timezone не отображается правильно Android Kotlin – отправлять уведомления каждую минуту Не поставлять достаточное количество данных в HAL, ожидаемое положение Переменная не обновляется после декларации lateinit, неспособная вернуться Множественные значения не допускаются для опции плагина. Org.jetbrains.kotlin.android:package getActivity () / context в ViewHolder в Котлин-Андориде Как создать диаграммы и UML кода Котлина? Kotlin: Почему унарный плюс / минус не способен вывести общий тип из назначения? Почему кинжал не обрабатывает эти котлинские дженерики?