Я новичок в kotlin, и я занимаюсь исследованием синтаксиса языка. Насколько я понимаю, в kotlin вы можете приводить типы данных с помощью встроенных функций, таких как:
.toInt()
, преобразующих 3,14 в целое число:
3.14.toInt()
, поскольку известно, что readline()
функция возвращает строку, я не уверен, почему этот синтаксис правильный:
fun main() {
println("please enter a int:")
val num1 = readLine()!!.toInt()
println("one more")
val num2 = readLine()!!.toInt()
println("sum : ${num1 + num2}")
}
и этот синтаксис неправильный
fun main() {
println("please enter a int:")
val num1 = readLine().toInt()
println("one more")
val num2 = readLine().toInt()
println("sum : ${num1 + num2}")
}
возвращает ошибку:
Error:(5, 26) Kotlin: Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type String
Просто ищите немного больше объяснения о приведении типов и различии синтаксиса, когда речь идет о функции readline()
и ее функциях.