为什么我会得到这个?Kotlin:类型不匹配:推断的类型是字符串?但字符串是意料之中的
当我尝试运行此代码时:为什么我会得到这个?Kotlin:类型不匹配:推断的类型是字符串?但字符串是意料之中的,kotlin,Kotlin,当我尝试运行此代码时: fun main() { val input: String = readLine() val outputs = input.toCharArray() for (i in 0 until input.length) { print("${outputs[i]}${outputs[i]}") } } 我得到这个错误:2,25 Kotlin:类型不匹配:推断的类型是字符串?但字符串是意料之中的。 如何修复此问题?函数返回字
fun main() {
val input: String = readLine()
val outputs = input.toCharArray()
for (i in 0 until input.length) {
print("${outputs[i]}${outputs[i]}")
}
}
我得到这个错误:2,25 Kotlin:类型不匹配:推断的类型是字符串?但字符串是意料之中的。
如何修复此问题?函数返回字符串?可为空的字符串
如果输入流被重定向到文件且已到达文件末尾,则返回read行或null行
控制台输入中没有文件结尾,因此无需担心空值。您可以使用不安全呼叫接线员!!将其转换为非空值字符串
val输入:String=readLine!!
在Kotlin中,仅使用点运算符对可空类型调用函数是一个编译错误,因为它可能导致空指针异常。为了避免这种错误,编译器强制您检查引用是否为null。也可以使用安全呼叫接线员?。。我建议您阅读有关主题的优秀Kotlin文档: 如果您已经开始使用Kotlin,我还建议您开始以更具声明性/功能性的方式编写代码。看看如何以更简单的方式实现您的目标:
fun main() {
val input = readLine()
input?.toCharArray()?.forEach { print(it) }
}
readLine返回字符串?i、 e.可空字符串。放一把!!在readLine调用的后面,因为当流打开时,它不会为null。