2016-01-21 2 views
4

Итак, в java у нас есть тернарный оператор (?), Который иногда полезен для легкого некоторого значения, вычисленного по строкам if-else. Например:Котлинский эквивалент тернарного оператора

myAdapter.setAdapterItems(
      textToSearch.length == 0 
      ? noteList 
      : noteList.sublist(0, length-5) 
) 

Я знаю эквивалент в Котлин будет:

myAdapter.setAdapterItems(
       if(textToSearch.length == 0) 
        noteList 
       else 
        noteList.sublist(0, length-5) 
) 

Но я просто любил тройной оператор в Java, для коротких условий экспрессии, и при переходе значения метода , Есть ли эквивалент Котлина?

ответ

11

В Котлине нет тройного оператора.

https://kotlinlang.org/docs/reference/control-flow.html

В Котлин, если это выражение, то есть он возвращает значение. Поэтому нет тройного оператора (условие? Then: else), потому что обычный, если работает отлично в этой роли.

+10

Не большой поклонник этого, tbh –

+2

Возможно, это должно избегать путаницы с '?:' И '?', А затем ':' ... но мне не хватает этого. –

+0

@JaysonMinard Я чувствую, что могу использовать 'if' в форме инфикса, чтобы убрать большую часть шаблона. – Jire

Смежные вопросы