You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

输入为整数时,不调用toInt()直接使用readLine()!!是否合法?

Kotlin readLine() 类型疑问解答
  • readLine() 是Kotlin标准库中用于读取控制台输入行的方法,返回值固定为 String? 类型(可为空的字符串),搭配 !! 非空断言后返回的仍为 String 类型,不存在自动识别输入内容类型、返回对应类型值的逻辑。
  • 你观察到的“输入整数不转换也能正常运行”是假象:输入55时,readLine()!! 实际读取到的是字符串 "55",print() 方法支持直接输出字符串内容,因此控制台会打印出文本形式的55,看起来和输出整数效果一致。
  • 可以通过以下测试验证该变量实际为字符串类型:尝试对读取到的变量做数值运算,会直接触发编译报错:
fun main() {
   println("Enter any number here: ")
   val a = readLine()!!
   print(a + 10) // 编译错误:不允许String类型与Int类型直接相加
}
  • 如果需要将输入内容作为整数使用,必须手动调用 .toInt() 方法完成字符串到整数的类型转换,转换后才能正常进行数值计算、大小比较等整数专属操作。

内容的提问来源于stack exchange,提问作者Angel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 02:24:02