(s.toString ?? "")-6ren">
gpt4 book ai didi

kotlin - "??"在 Kotlin 中意味着什么

转载 作者:行者123 更新时间:2023-12-02 12:38:17 26 4
gpt4 key购买 nike

我是一名学习mvvm的学生。

我看到了一些代码。

那么“??”是什么意思?是 kotlin 中的意思。

我搜索过这个,但找不到。

如果我错了,我该如何纠正? -> (s.toString ?? "")

1.

fun wrap(a: Int?): Int?? {
return a
}

fun desc(a: Int??) {
if (a == null) {
println("None")
} else {
if (a == null) {
println("Some(None)")
} else {
println("Some(Some($a))")
}
}
}

fun main(args: Array<String>) {
val a: Int?? = wrap(null)
desc(a)
}

2.

<layout/>
<data>
<variable>
name="signid"
type="SignidViewModel" />
</data>

<EditText
android:onTextChanged='@{(s,start,end,before) -> signid.Check_ID(s.toString ?? "")}' />
</layout>

最佳答案

看起来像是一些多余的代码。您可以安全地删除第二个问号

fun wrap(a: Int?): Int? {
return a
}

fun desc(a: Int?) {
if (a == null) {
println("None")
} else {
if (a == null) {
println("Some(None)")
} else {
println("Some(Some($a))")
}
}
}

fun main(args: Array<String>) {
val a: Int? = wrap(null)
desc(a)
}

在第二种情况下,您必须使用 ?: 运算符而不是 ??

<layout/>
<data>
<variable>
name="signid"
type="SignidViewModel" />
</data>

<EditText
android:onTextChanged='@{(s,start,end,before) -> signid.Check_ID(s.toString ?: "")}' />
</layout>

val s = string ?: "" 表示

if (string != null) {
val s = string
} else {
val s = ""
}

关于kotlin - "??"在 Kotlin 中意味着什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57906697/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com