Kotlin Null 安全警告 Unexpected tokens (use ; to separate expressions on the same line)
Kotlin Null safety warning Unexpected tokens (use ; to seperate expressions on the same line)
我在我的应用程序中尝试 Elvis operator 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
有什么解决办法吗?
kotlin 不支持三元运算符。
甚至 check
不是 boolean
变量在你的情况下让它成为布尔值或使用 like
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
我不明白为什么你在这里需要任何 null 安全运算符。 None 个变量可为空。
你写了
check?key.replace("KEY", "ABDS-ASDSA-DSSS")?:check
?
(在 check
之后)不是 Kotlin 中的运算符。
您可能想要 ternary conditional operator, which is simply replaced by if
/else
。
从您的评论来看,您似乎想要 safe call 运算符,即 ?.
,而不是 ?
。
check?.key?.replace("KEY", "ABDS-ASDSA-DSSS") ?: check
Elvis operator 和安全调用操作符之间存在差异。 Elvis 运算符使用表达式,而安全调用运算符只是 空安全 属性 访问或方法调用 .
Elvis 运算符 returns 如果它不为空,则它是第一个操作数,否则 returns 第二个操作数。
?.
运算符 returns null
如果接收者为空,否则,它 returns 调用的结果。
我在我的应用程序中尝试 Elvis operator 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
有什么解决办法吗?
kotlin 不支持三元运算符。
甚至 check
不是 boolean
变量在你的情况下让它成为布尔值或使用 like
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
我不明白为什么你在这里需要任何 null 安全运算符。 None 个变量可为空。
你写了
check?key.replace("KEY", "ABDS-ASDSA-DSSS")?:check
?
(在 check
之后)不是 Kotlin 中的运算符。
您可能想要 ternary conditional operator, which is simply replaced by if
/else
。
从您的评论来看,您似乎想要 safe call 运算符,即 ?.
,而不是 ?
。
check?.key?.replace("KEY", "ABDS-ASDSA-DSSS") ?: check
Elvis operator 和安全调用操作符之间存在差异。 Elvis 运算符使用表达式,而安全调用运算符只是 空安全 属性 访问或方法调用 .
Elvis 运算符 returns 如果它不为空,则它是第一个操作数,否则 returns 第二个操作数。
?.
运算符 returns null
如果接收者为空,否则,它 returns 调用的结果。