gpt4 book ai didi

Kotlin - 相同条件 : multiple if statements or one if statement

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

在 Kotlin 中,您可以使用类似于三元运算符的 if 语句。

我们可以选择做这样的事情:

val x = if (isOdd) 1 else 2

但是如果我们有多个变量需要根据某些条件进行设置,那么像这样用老式的方式来设置是否更正确:

val x: Int
val y: Int
val z: Int

if (isOdd) {
x = 1
y = 3
z = 5
} else {
x = 2
y = 4
z = 6
}

或者像这样:

val x = if (isOdd) 1 else 2
val y = if (isOdd) 3 else 4
val z = if (isOdd) 5 else 6

第二种方法对我来说看起来更清晰,但我想知道第一种方法是否会计算得更快,因为它只需要计算一次条件,而第二种方法需要检查条件 3 次。

第二种方式真的更慢还是会被编译器优化?

最佳答案

我更喜欢这样的东西,看起来更像 Kotlinesque:

data class Point3D(val x: Int, val y: Int, val z: Int)

fun foo(isOdd: Boolean): Point3D = if (isOdd) Point3D(1, 3, 5) else Point3D(2, 4, 6)

//or using destructureing see https://kotlinlang.org/docs/reference/multi-declarations.html)
val (x,y,z) = if (isOdd) Triple(1, 3, 5) else Triple(2, 4, 6)

它还结合了两者的优点,使用 if 作为表达式并且只需要一个 if。 (以额外的对象分配为代价)。

但是要回答你的问题。做你喜欢和认为最具可读性的事情。性能方面我怀疑你会有所作为。

关于Kotlin - 相同条件 : multiple if statements or one if statement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52930918/

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