gpt4 book ai didi

kotlin - 仅当右侧不为空时才分配的更好方法?

转载 作者:IT老高 更新时间:2023-10-28 13:43:03 26 4
gpt4 key购买 nike

在 Kotlin 中,我只想在另一个变量不为 null 的情况下进行赋值(否则,没有操作)。我可以想到两种简洁的方式:

fun main(args: Array<String>) {
var x: Int? = null
var n = 0

// ... do something ...

x?.let { n = it } // method 1
n = x ?: n // method 2
}

但是,考虑到我必须执行它们的频率,它们感觉不够简洁。第一种方法似乎有点矫枉过正。第二种方法是在 ?:.

之后要求一个表达式。

我怀疑一定有更好的方法,比如 n =? x?还是 n = x??有吗?

最佳答案

尝试 infix 来'模拟自定义中缀操作'

// define this
infix fun <T > T.assignFromNotNull(right: T): T = right ?: this

///////////////////////////////////////////////////////////
// Demo using

// Now, Kotlin infix-style
fooA assignFromNotNull fooB
barA assignFromNotNull barB
bazA assignFromNotNull bazB

// Old code, Java if-style
if (fooB != null) {
fooA = fooB;
}
if (barB != null) {
barA = barB;
}
if (bazB != null) {
bazA = bazB
}

关于kotlin - 仅当右侧不为空时才分配的更好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47958732/

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