我在应用程序中尝试Kotlin代码中的Elvis运算符,并收到以下警告:
Unexpected tokens (use ; to seperate expressions on the same line)
代码:
var key: String = "KEY is"
/* "check" is name of String variable which can be null
Warning coming on following statement*/
var str : String = check?key.replace("KEY", "ABDS-ASDSA-DSSS")?:check
有什么办法解决这个问题吗?
我不明白为什么你需要任何空的安全操作员在这里。您的变量中没有一个是可为空的。
你写的
check?key.replace("KEY", "ABDS-ASDSA-DSSS")?:check
?
(在检查
之后)不是Kotlin中的运算符。
您可能希望使用三元条件运算符,该运算符仅被if
/else
替换。
从您的评论来看,您似乎想要安全的呼叫操作符,它是?.
而不是?
。
check?.key?.replace("KEY", "ABDS-ASDSA-DSSS") ?: check
Elvis操作员和safe call操作员之间是有区别的。Elvis运算符与表达式一起工作,而safe call运算符只是一个null-safe属性访问或方法调用。
如果Elvis运算符不为null,则返回第一个操作数,否则返回第二个操作数。
如果接收方为null,?.
运算符返回null
,否则返回调用的结果。
我找到了几个答案,但我不明白他们到底在说什么,在我的情况下该怎么办。 在Functions类中: 请救命!
我想当我尝试在 Kotlin 中编写一行代码时我搞砸了,似乎没有问题,但 IntelliJ 在这里给了我这个错误:
此代码不编译“错误”意外标记(使用;分隔同一行中的表达式) 使用该代码的科特林游乐场
我的代码 错误 im 获取是意外的标记(使用“;”在同一行上分隔表达式)
你能在这件事上帮我吗? 我只是复制了教程上的代码,但我的屏幕上显示了一个错误:)。 < code>Log.d(标签:" MainActivity ",textViewText)