【发布时间】:2013-04-26 12:49:18
【问题描述】:
这个表达式在 Kotlin 中的等价物是什么?
a ? b : c
这不是 Kotlin 中的有效代码。
【问题讨论】:
-
也许展示作业会让这一点更清楚。 "d = (a) ? b : c" 现在是 "d = if (a) b else c。同样适用于 when: "d = when { a -> b; c -> x; else ->d }"。我个人更喜欢 java/c/PERL 语法。
-
是的,kotlin 的优秀设计者抛弃了 java 中最优雅的构造,取而代之的是 1) 可读性较差,2) 难以键入(即更多“样板代码”),以及 3 )对于初学者来说更难理解(将表达式与语句混为一谈)。我认为他们更改了三元组,因为...它是 java,根据他们的定义 必须 是坏的。
-
在单行语句中使用 if-else 表达式类似于 Java 中的三元运算符。 Kotlin 不支持任何三元运算符。
-
我已经使用 C# 和 Kotlin 多年了,但我仍然缺少 Kotlin 中的
? :运算符。它比if () else构造更优雅、更短、更易读。这就是为什么这个问题的评分如此之高。
标签: kotlin conditional-operator