Я начал изучать Kotlin несколько дней назад и не очень понимаю, зачем в таком случае использовать readln()!!.toInt(), откуда берется число и к какой "строке" оно относится.
весело main(аргументы: Массив) {
var number: Int
var sum = 0
for (i in 1..6) {
print("Enter an integer: ")
number = readln()!!.toInt()
Было бы очень полезно, если бы кто-то мог это объяснить. Благодарю вас!





readline() (не readln()) возвращает строку из стандартного потока ввода или null, если поток ввода был перенаправлен в файл и достигнут EOF (конец файла). Его возвращаемый тип — String?, что означает, что он может быть либо String, либо нулевым.
!! — это «Мы уверены, что это никогда не будет нулевым; заставьте это сделать ненулевой тип». Это означает, что вам не нужно иметь дело с условием, когда объект, с которым вы работаете, имеет значение null.
В этом случае !! говорит: «Мы уверены, что системный ввод не был перенаправлен в файл (или, если да, то этот EOF не был достигнут); подождите, пока пользователь что-то введет».
Похоже, кто-то перепутал readline() и readln() (что я и сделал, когда впервые ответил на этот вопрос) - прав @Tenfour04; нет необходимости использовать !! с readln. Он делает то же самое, за исключением того, что выдает исключение, если встречается EOF.
Ты прав! Я отредактировал ответ; надеюсь адекватно. Спасибо.
!!не имеет смысла сreadln, так как возвращает ненулевую строку. ЭтоreadLineвозвращает nullable.