我通过以下程序尝试了此操作,但是它显示了预期的kotlin变量错误:
[
答案 0 :(得分:3)
这不是传统方式,但是无论如何:
fun main(args: Array <String> ) {
var a = readLine()!!.toInt()
var b = readLine()!!.toInt()
println("a=$a and b=$b")
val c = a + b
a = c - a
b = c - b
println("now a=$a and b=$b")
}
这是传统方式:
fun main(args: Array <String> ) {
var a = readLine()!!.toInt()
var b = readLine()!!.toInt()
println("a=$a and b=$b")
val c = a
a = b
b = c
println("now a=$a and b=$b")
}
这是Kotlin方法,其中仅2个变量:
fun main(args: Array <String> ) {
var a = readLine()!!.toInt()
var b = readLine()!!.toInt()
println("a=$a and b=$b")
a = b.also { b = a }
println("now a=$a and b=$b")
}
答案 1 :(得分:1)
我不知道为什么要交换值,但是根据您要精确执行的操作以及是否不需要变量,这是使用Pair
的另一种方法:
(readLine()!! to readLine()!!)
.also(::println) // optional
.map { a, b -> b to a }
.also(::println) // optional
打印输入1
和2
的内容:
(1, 2)
(2, 1)
有关进一步交换的可能性,您可能还需要查看:Swap Function in Kotlin
带有Enter a
等的示例:
val ask : (String) -> String = {
print(it)
readLine()!!
}
(ask("Enter a: ") to ask("Enter b: "))
.map { a, b -> b to a }
答案 2 :(得分:0)
使用Kotlin型铸造的力量,就完成了!
var a = readLine()!!
var b = readLine()!!
//print
val c = a.toInt() + b.toInt()
b = (c-b.toInt()) as String
a = (c-a.toInt()) as String
//print
答案 3 :(得分:0)
您可以使用名为'also'的kotlin标准函数。
var a = readLine()!!
var b = readLine()!!
a = b.also { b = a }