Я попробовал это с помощью следующей программы, но она показывает ошибку, что ожидается переменная kotlin:
[
Я попробовал это с помощью следующей программы, но она показывает ошибку, что ожидается переменная kotlin:
[
Это не традиционный способ, но в любом случае:
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")
}
Я не знаю, почему вы хотите поменять местами значения, но в зависимости от того, что именно вы хотите сделать, и если вам не нужны переменные, вот еще один подход с использованием Pair
:
(readLine()!! to readLine()!!)
.also(::println) // optional
.map { a, b -> b to a }
.also(::println) // optional
который для ввода 1
и 2
печатает:
(1, 2)
(2, 1)
Для получения дополнительных возможностей обмена вы также можете посмотреть: Функция обмена в Kotlin
Пример с Enter a
и т.д.:
val ask : (String) -> String = {
print(it)
readLine()!!
}
(ask("Enter a: ") to ask("Enter b: "))
.map { a, b -> b to a }
Используйте мощь приведения типов 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
Вы можете использовать стандартную функцию kotlin с именем 'also'.
var a = readLine()!!
var b = readLine()!!
a = b.also { b = a }