Утверждение с сообщением об ошибке в Котине

Мне становится комфортно в Kotlin после перехода с Java и не удалось выяснить, как использовать функцию утверждения Kotlin в сочетании с сообщением об ошибке.

Звучит просто, мне просто нужно что-то похожее на Java

assert count > 5 : "value too small" 

Я пытался

 assert(count > 5, "value too small") 

Однако второй аргумент должен быть () -> Any . Как это сделать?

Параметр сообщения assert не является строкой, а функцией, возвращающей строку. Это происходит потому, что иначе, поскольку assert является нормальной функцией Котлина, его аргументы будут оцениваться каждый раз, что приведет к ненужным накладным расходам (а иногда и изменению семантики) вычисления строки сообщения в случае, если строка является сложным выражением.

Чтобы передать аргумент функции, используйте синтаксис лямбда . Последний аргумент, который является лямбдой, может быть исключен из круглых скобок:

 assert(count > 5) { "value too small" } 

Я получил его сам, мне нужно объявить лямбда-функцию без параметров, которая выглядит так в Котлине:

 assert(count > 5, {"value too small"}) assert(count > 5, { -> "value too small"}) 

Извините, что беспокоил вас! Я оставляю вопрос, может быть, какой-то другой новичок найдет его полезным.

Intereting Posts
Каковы возможные значения, которые могут быть даны `@ Suppress` в Котлин? Ошибка установки Gradle: Javadoc JsonArray в класс данных Kotlin с использованием Retrofit (ожидается BEGIN_OBJECT, но BEGIN_ARRAY) java https: // localhost (SSL) – возможно без установки сертификатов на клиенте? Показать фрагмент в виджетах android Возможно ли издеваться над аксессуарами от Mockito в Котлине? Как сделать сумму элементов для нескольких списков в kotlin Как использовать CacheManager для Osmdroid и Osmdroid почему kotlin использует === сравнить примитивный тип, равный друг другу, если они имеют одинаковое значение Почему Kotlin не может вывести следующий аргумент лямбда (после преобразования Java -> Kotlin)? Kotlin: «если элемент не в списке» правильный синтаксис Android Studio ярлык для автозаполнения Toast (Kotlin) Smartcasting на и с платформы типа в kotlin Способы запутывания доступа к привилегированным частным, но на самом деле публичным членам класса для использования их в встроенных методах Идиоматический способ вызова методов через отражение в Котлине