是否可以更改此:
if(String!= null) {
callFunction(parameters);
} else {
// Intentionally left blank
}
…对三元运算符?
好吧,ternary operatorJava
中的行为就像这样……
return_value = (true-false condition) ? (if true expression) : (if false expression);
…另一种看待它的方式…
return_value = (true-false condition)
? (if true expression)
: (if false expression);
你的问题有点含糊,我们必须在这里假设。
callFunction(...)
声明了一个non-void
返回值(Object,String,int,double
,等。)-现在看来似乎没有做到这一点通过你的代码-那么你可以做到这一点…return_value = (string != null)
? (callFunction(...))
: (null);
如果callFunction(…)不返回值,那么你将无法使用三元运算符!就那么简单。你将使用不需要的东西。
请发布更多代码以清除所有问题
尽管如此,三元运算符仅应代表替代分配!!你的代码似乎没有做到这一点,因此你不应该这样做。
这就是他们应该如何工作的…
if (obj != null) { // If-else statement
retVal = obj.getValue(); // One alternative assignment for retVal
} else {
retVal = ""; // Second alternative assignment for retVale
}
这可以转换为…
retVal = (obj != null)
? (obj.getValue())
: ("");
由于你似乎可能试图将代码重构为单一代码,因此我添加了以下内容
另外,如果你的虚假条款确实是空的,那么你可以这样做…
if (string != null) {
callFunction(...);
} // Take note that there is not false clause because it isn't needed
要么
if (string != null) callFunction(...); // One-liner
问题内容: 有人可以解释为什么这样的代码吗? 产生以下编译器错误: 不兼容的条件操作数类型ArrayList和HashSet 由于我不明白的原因,以下内容解决了该问题 我正在使用Java 1.4。 问题答案: 这是1.4 中的 错误 ,并已根据bugreport 5080917 进行了修复。 评估 这是一个错误。 xxxxx @ xxxxx 2004-07-30
有没有办法用三元运算来实现这个。我对三进制很陌生,也许你可以指导我。 这个好像不行。
模板可以支持三元运算符,如: {$status?'发布':'下线'} {$vo.status?'发布':'下线'} {$vo['status']?'发布':'下线'} 支持条件判断表达式: {$a==$b ? 'yes' : 'no'} 条件运算符可以是==、===、!=、!==、>=、<=
请参考:http://www.kancloud.cn/manual/thinkphp/1802
模板可以支持三元运算符,如: {$status?'发布':'下线'} {$vo.status?'发布':'下线'} {$vo['status']?'发布':'下线'} 支持条件判断表达式: {$a==$b ? 'yes' : 'no'} 条件运算符可以是==、===、!=、!==、>=、<=
条件(三元)运算符是 JavaScript 仅有的使用三个操作数的运算符。一个条件后面会跟一个问号(?),如果条件为 truthy ,则问号后面的表达式A将会执行;表达式A后面跟着一个冒号(:),如果条件为 falsy ,则冒号后面的表达式B将会执行。本运算符经常作为 if 语句的简捷形式来使用。(MDN) 三元运算符,也称条件运算符、三目运算符。 三元运算符可以代替简单的 if 语句。 1. 语