我的
parent
变量是nullable
,并且有一个getWidth
函数。我只想在parent不为空时调用getWidth
,所以我做了这个let
函数:
return parent.let {
it.getWidth() * (perWidth / 100.0f)
} ?: run{
App.realWidth.toFloat()
}
另外,如果为空,我想调用
App.realWidth.toFloat()
,所以我将其添加到?: run
中,我读到就像在else
函数中执行let
一样。
问题是它在
it.getWidth()
上给了我这个错误
仅允许安全 (?.) 或非空断言 (!!.) 调用 ParentInterface 类型的可空接收器?
我不明白为什么,因为它不能为空,因为它位于
let
块内。
我该如何解决这个问题?
你应该写成
return parent?.let {
否则,当它为空时,它仍然出现在
let
块中,it
为空