Какой более элегантный способ проверить нулевое значение в следующем сценарии?

Я использую Groovy. Какой более элегантный способ сделать следующее?

if (!token) {
    token = this.getToken(key, callback)

    if(!token) {
      return params = null
    }

}

Поэтому, если токен уже присутствует, когда пользователь входит в этот поток, следует использовать этот токен. Однако, если токен отсутствует, мы должны попытаться его сгенерировать. Служба, которую мы используем для получения токена, не генерирует исключение, если ничего не создано, она просто возвращает значение null. Если токен не был успешно создан (по-прежнему имеет значение null), мы хотим установить для параметров значение null.

Есть ли более чистый способ делать то, что я делаю? Нулевая проверка внутри нулевой проверки кажется мне уродливой.


person Paul Erdos    schedule 30.03.2015    source источник
comment
Если новый сгенерированный токен не нулевой, что вы должны делать с параметрами?   -  person jalopaba    schedule 30.03.2015
comment
Если params имеет значение null, то кнопка, связанная с токеном, будет скрыта в представлении. Поэтому, если вы не можете получить токен, эта функция будет отключена для пользователя.   -  person Paul Erdos    schedule 30.03.2015


Ответы (1)


Первую часть можно переписать с помощью оператора elvis, чтобы исключить первую нулевую проверку:

token = token ?: this.getToken(key, callback)
if (!token) {
   ...
}
person ataylor    schedule 30.03.2015
comment
Мне это нравится, по крайней мере, это визуально упрощает его, если не больше. - person Paul Erdos; 30.03.2015