Как сделать гвардейское заявление в Котлине, как Свифт? - PullRequest
3 голосов
/ 13 апреля 2019

Я хочу написать охранную инструкцию в Kotlin, например, Swift.

Например:

guard let e = email.text , !e.isEmpty else { return }

Любой совет или пример кода?

1 Ответ

5 голосов
/ 14 апреля 2019

Попробуйте

val e = email.text?.let { it } ?: return

Объяснение : проверяет, не является ли свойство email.text null.Если он не нулевой, он присваивает значение и переходит к выполнению следующего оператора.В противном случае он выполняет оператор return и отключается от метода.

Редактировать : Как подсказывает @dyukha в комментарии, вы можете удалить избыточный let.

val e = email.text ?: return

Если вы хотите проверить любое другое условие, вы можете использовать выражение if Котлина.

val e = if (email.text.isEmpty()) return else email.text

Или попробовать (как предложено @Slaw).

val e = email.text.takeIf { it.isNotEmpty() } ?: return

Вы также можете попробовать guard функцию, как здесь реализовано: https://github.com/idrougge/KotlinGuard

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...