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'。 –