今天遇見一個奇怪的問題:
報錯
因為外層 else 表達(dá)式有一個 String 類型返回值痕鳍,所以這里 u 類型為 () -> Any纷捞,它需要一個返回值類型,因此內(nèi)層 if 被視為外層 if 的取值表達(dá)式顿膨,必須要有 else 分支萤皂。
將外層 else 表達(dá)式返回值去掉后不報錯:
去掉返回值
此時 u 類型為 () -> Unit,即無返回值 lambda 函數(shù)類型,那么 if-else 也就不是取值表達(dá)式了板惑,因為不需要返回值橄镜。
其實我們只要把最外層 {} 去掉就知道了:
去掉 {}
這樣肯定是不行的,因為內(nèi)層只有一個 if 分支冯乘,這樣是取不到值的洽胶。
PS:
Unit?