[英]How to do multiple variable assignments in one line in Kotlin like C,C++?
我不得不使用除 x 和 y 之外的其他變量在一個行表達式中交換 2 個數字。 所以我寫了下面的.c
程序來交換兩個給定條件的數字,它就像魅力一樣。
int main() {
int x =5, y =2;
x = y-x+(y=x);
printf("X=%d, y=%d", x, y);
return 0;
}
但是當我嘗試在 kotlin 中做同樣的事情時,它給了我一個錯誤
賦值不是表達式,在這種情況下只允許使用表達式,
我可以通過像這樣引入第三個變量來解決這個問題。 但是除了已經給出的 x 和 y 之外,我不允許有任何其他變量。 那么有沒有其他方法可以使用任何 kotlin 屬性在一行中做到這一點?
下面是kotlin程序
fun main() {
var x = 5
var y = 10
x = y-x+(y=x)
println("X = $x, Y = $y")
}
雖然我在下面有兩個建議,但我想從針對其中任何一個的建議開始,至少在這個簡單的示例中是這樣。
優化代碼以供開發人員閱讀通常會更加清晰,可以通過以下方式閱讀:
val
而不是var
以避免意外突變而且我相信編譯器會讓代碼變得高效。
fun main() {
val x = 5
val y = 10
val newX = y
val newY = x
println("X = $newX, Y = $newY")
}
您可以使用本地 function來執行交換,因為 function 仍然能夠訪問原始值。
fun main() {
var x = 5
var y = 10
fun swap(originalX: Int, originalY: Int) {
y = originalX
x = originalY
}
swap(x, y)
println("X = $x, Y = $y")
}
這可以用代碼打成一行
to
創建Pair<Int, Int>
,fun main() {
var x = 5
var y = 10
(x to y).apply { x = second; y = first }
println("X = $x, Y = $y")
}
一條線? 是的。 更難閱讀? 我認同。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.