Kotlin Null安全警告意外的令牌(使用;在同一条线上分开表达式)



我在我的应用程序中尝试了kotlin代码中的猫王操作员,并在警告后接收到:

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

?check之后)不是Kotlin中的操作员。

您可能想要三元条件操作员,该操作员仅由if/else替换。

从您的评论来看,您似乎想要安全的呼叫操作员,即?.,而不是?

check?.key?.replace("KEY", "ABDS-ASDSA-DSSS") ?: check

猫王操作员和安全呼叫操作员之间存在差异。猫王操作员可以使用表达式工作,而安全呼叫操作员只是 null-safe属性访问或方法调用

猫王操作员(如果不是null)返回其第一个操作数,否则将返回第二个操作数。

?.操作员如果接收器为null,则返回null,否则,它将返回呼叫的结果。

kotlin不支持三元运算符。

,甚至check都不是boolean变量,在您的情况下使其成为布尔或使用

var check: String = "something here"
 var key: String = "KEY is"
/*Warning coming on following statement*/
 var str : String = key.replace("KEY", "ABDS-ASDSA-DSSS")?:check

相关内容

  • 没有找到相关文章

最新更新