但这并不能说服我。因为Kotlin支持Elvis操作符
,而普通if在该角色中也很好。
我认为三元运算符
有时比普通的好,如果
,尽管我想知道为什么Kotlin不支持三元运算符
?
在具有三进制运算符
的语言中,可以这样使用它
String value = condition ? foo : bar;
在Kotlin中,可以使用if和else做同样的事情
var value = if(condition) foo else bar;
它比三值运算符
更冗长。但是Kotlin的设计师认为这是可以的。可以像这样使用if-else
,因为在Kotlin中if
是一个表达式并返回一个值
Elvis运算符
本质上是三元条件语句的压缩版本,相当于Kotlin中的folling。
var value = if(foo != null) foo else bar;
但是如果使用ELVIS运算符
,则简化如下
var value = foo ?: bar;
这是相当大的简化,Kotlin决定保留它。
解释:这个问题更多的是关于Kotlin的设计意图。许多表达式语言同时支持和[例如,Ruby、Groovy.] 首先,我知道Groovy同时支持和:Groovy中的三元运算符。所以我不认为这是语法问题。 然后官方文件说: 在Kotlin中,if是一个表达式,即它返回一个值。因此不存在三元运算符(condition?then:else),因为普通if在这个角色中工作得很好。 这也不能说服我。因为Kot
但是我发现我不能用围棋做同样的事情,我必须写一个if-else语句。我只是想知道为什么在围棋世界里不存在这种情况(是否有一些设计原则来解释这种情况)
问题内容: 我正在尝试使用Diamond运算符,但是却收到以下消息: -source 1.5中不支持Diamond运算符(使用-source 7或更高版本来启用Diamond运算符) 它可以在Android的netbeans中修复吗? 问题答案: Android需要Java来源合规性5.0或6.0(Java5 / 6)。开箱即用不支持Java7。这些文章描述了有关如何使用某些Java7功能的技巧:
以下是关于的几个主题: 三元算子-Java 除此之外,我不懂语法。 我有一个带有和的方法。 三元运算符的语法为 我试过这个: 我有一个错误消息=>
假设我们有一个前提条件,有了类定义: 其中实例是从数据存储中获取的,它可以是 变量通过web服务填充,也可以是。结果应该加载从web服务获取的值的优先级。 我希望你们在这里发表意见,让我们讨论一下这两行中哪一行更具可读性? 不确定是否会给您带来困惑!?我一直在尝试使用它们,有时会因为一句话而失去指南针。也许,这也可能很愚蠢,但我很好奇你的想法是什么?
条件(三元)运算符是 JavaScript 仅有的使用三个操作数的运算符。一个条件后面会跟一个问号(?),如果条件为 truthy ,则问号后面的表达式A将会执行;表达式A后面跟着一个冒号(:),如果条件为 falsy ,则冒号后面的表达式B将会执行。本运算符经常作为 if 语句的简捷形式来使用。(MDN) 三元运算符,也称条件运算符、三目运算符。 三元运算符可以代替简单的 if 语句。 1. 语