有没有可能改变这一点:
if(String!= null) {
callFunction(parameters);
} else {
// Intentionally left blank
}
…一个三元运算符?
是的。您可以在else
块中保持相同的null
。
String result = str !=null ? callFunction(parameters) : null;
确保CallFunction(parameters)
返回字符串
。
好吧,Java中的三元运算符
是这样的...
return_value = (true-false condition) ? (if true expression) : (if false expression);
...换个角度来看...
return_value = (true-false condition)
? (if true expression)
: (if false expression);
你的问题有点模糊,我们必须在这里假设。
>
如果(且仅当)CallFunction(...)
声明了非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())
: ("");
由于看起来您可能只是试图将此代码重构为一个单行程序,因此我添加了以下内容
另外,如果你的false-子句真的是空的,那么你可以这样做...
if (string != null) {
callFunction(...);
} // Take note that there is not false clause because it isn't needed
或
if (string != null) callFunction(...); // One-liner
我能用java写 甚至我可以在方法参数中传递它。 我怎么把它转换成Kotlin?在Kotlin中写同样的东西时显示错误。
我如何将下面的代码从Java转换成Kotlin?
此表达式在Kotlin中的等价物是什么。 这是在给错误。
有没有可能改变这一点: 到三元运算符?
我们如何在Kotlin中使用三元运算符? 我尝试过使用三元运算符,其方式与java中使用的方式相同,但我在其中发现了一个lint错误:
可能重复: Java条件运算符?:结果类型 通过Java三元运算符的自动装箱行为实现NullPointerException 说我有两个功能: 我这样称呼他们: 这会编译,但当我运行它时,我得到一个空指针异常(对不起,我不确定是在什么条件下)。我的一些问题是: 它为什么还要编译呢?? 它显然没有调用“正确的”函数,因为这不会导致NPE。那么它在调用哪个函数呢?它执行还是?