Kotlin函数返回值类型不匹配问题咨询
Kotlin函数返回值类型不匹配问题咨询
嘿,我最近写Kotlin函数时碰到个挺费解的问题,来请教下大家!
先看这个简单的函数:
fun multiplyByTwo(x: Int): String { // [1] println("Inside multiplyByTwo") // [2] var result = x * 2 result = result.toString() return result }
明明我最后把result转成了String类型,而且函数的返回值也明确声明成了String,但编译器还是提示我类型不匹配,这就让人很困惑了。
更奇怪的是,要是我把代码改成下面这种写法,就完全能正常运行:
var result = (x*2).toString()
可要是写成下面这种分开赋值的形式,就会报错:
var result = x * 2 result = result.toString()
这俩写法逻辑上看起来完全一样啊,为啥结果天差地别?感觉像是Kotlin或者Java底层的什么奇怪机制在搞鬼,实在摸不着头脑,有没有大佬能给我解释下?
备注:内容来源于stack exchange,提问作者Daniel Zmski
相关产品推荐
相关产品推荐

