4
(我使用Kotlin 1.1.2-2)我如何知道Kotlin中的推断类型?
例如,我如何知道表达式if (boolean_value) 1 else 2.0
的推断类型? kotlinc-jvm
不显示类型。 javaClass
也没有帮助,因为它显示计算值的类型不是表达式。
>>> (if (true) 1 else 2.0).javaClass.name
java.lang.Integer
>>> (if (false) 1 else 2.0).javaClass.name
java.lang.Double
>>> val v: Double = if (false) 1 else 2.0
error: the integer literal does not conform to the expected type Double
val v: Double = if (false) 1 else 2.0
^
在IDEA中引入了类型提示,并在昨天发布了新的Kotlin v1.1.3。请参阅https://blog.jetbrains.com/kotlin/2017/06/kotlin-1-1-3-is-out/#more-5080 – marstran
IDEA显示的类型与Kotlin编译器推断的类型相同?或只是插件计算的类型? IDEA显示“if(...)child1 else child2'不是”Any“的父类型。 – letrec
@letrec现在你的kotlin的版本是什么?我的是'1.1.2-5'。 –