- Kotlin進階實戰
- 沈哲 易龐宙編著
- 200字
- 2022-07-27 18:28:13
4.1.3 非局部返回以及crossinline的使用
1.非局部返回(non-local returns)
普通的return默認返回的函數是當前fun所定義的函數,這叫作局部返回(local return)。

在Lambda表達式內部不能讓外部函數返回,所以在Lambda表達式中使用return是被禁止的。

但是,由于內聯函數的特性,可以在Lambda表達式中使用return返回外部函數。這種返回方式被稱作非局部返回(non-local returns)。

使用noinline的Lambda表達式也不支持非局部返回。
2.crossinline的使用
內聯函數默認支持非局部返回,而crossinline修飾的Lambda表達式不允許非局部返回。
例如:
