ple*_*rax 3 kotlin kotlin-extension
我正在 kotlin 中制作一个简单的数学计算器,当我尝试初始化用作浮点整数的 0.00 的变量之一的值时,屏幕上出现错误。
var x:Float= readLine()!!.toFloat()
var y:Float= readLine()!!.toFloat()
var sum:Float=0.00// the error message is showcased in this line
sum=x+y
println("Addition " + sum)
Run Code Online (Sandbox Code Playgroud)
这是 Java 和 Kotlin 之间的主要区别。Kotlin 不像 Java 那样进行数字类型提升。对您的问题的评论向您展示了如何处理这个问题,通过匹配两种类型 Double 和/或 Float 开始,或者通过显式转换一种或另一种以使两种类型匹配。
如果您利用 Kotlin 的能力通过从变量定义中去除类型规范来推断变量类型,那么您的问题就会消失。Kotlin 推断类型这一事实是它不提升数字类型的原因之一。将两者混合会导致很多混乱。
以下是如何使用类型推断修复和简化代码类型不匹配问题的示例:
var x = readLine()!!.toFloat()
var y = readLine()!!.toFloat()
var sum = x + y
println("Addition " + sum)
Run Code Online (Sandbox Code Playgroud)
我知道这可能只是您用来更好地理解 Kotlin 的测试代码。话虽如此,我会指出如果您的用户输入非数字输入,此代码将崩溃。您可以通过在输入行周围放置 try/catch 并提供一个很好的错误消息来解决此问题。您可能希望将每个输入放入一个循环中,继续请求输入,直到用户确实提供了符合预期格式的响应。
| 归档时间: |
|
| 查看次数: |
5268 次 |
| 最近记录: |