¿Cómo implementar readLine () !!. ToIntArray () en Kotlin?

Me gustaría implementar una function o alguna forma de almacenar una matriz secuencialmente desde una console . Algo como esto: readLine()!!.toIntArray()

¿Sería conveniente usar un bucle para esto o podría evitarse?

Y luego puede acceder a ellos usando el índice de la matriz.

 fun main(args: Array<String>) { myFunction() } 

UN:

 fun myFunction() { println(" . First number: ") val num1:Float = readLine()!!.toFloat() println(" . Second number: ") val num2:Float = readLine()!!.toFloat() println(" . Third number: ") val num3:Float = readLine()!!.toFloat() println(" . Fourth number: ") val num4:Float = readLine()!!.toFloat() val result:Float = (num1+num2) + (num3*num4) print("The result is: $result") } 

SEGUNDO:

 fun myFunction() { println("Enter four numbers ...") // val numbers:IntArray = intArrayOf(45, 22, 10, 13) val numbers:IntArray = readLine()!!.toIntArray() //HERE: toIntArray() isn't defined val result:Int = (numbers[0]+numbers[1]) + (numbers[2]*numbers[3]) print("The result is: $result") } 

Al definir la matriz, tendré que indicar la cantidad de valores que quiero que se lean desde la console, es decir, el tamaño de la matriz.

¿O hay otra forma de dejar de leer datos en la console?

En resumen, quiero pasar del bloque A a la idea del bloque B.

SOLUCIÓN

 println("Enter four numbers ...") val numbers = readLine()!!.split(" ").map { it.toInt() } val result:Int = (numbers[0]+numbers[1]) + (numbers[2]*numbers[3]) print("The result is: $result") 

    No necesitas un bucle. Se puede hacer con un map :

     val numbers = readLine()!!.split(" ").map { it.toInt() } 

    Si necesita leer los numbers de líneas separadas como en sus ejemplos:

     val list = List(4) { readline()!!.toFloat() } 

    Lo mismo se puede hacer con arreglos, pero se recomienda usar lists en Kotlin