官术网_书友最值得收藏!

  • 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表達式不允許非局部返回。

例如:

主站蜘蛛池模板: 柳江县| 金昌市| 楚雄市| 江永县| 广元市| 安阳县| 靖州| 伊川县| 开江县| 石家庄市| 介休市| 德兴市| 泰来县| 凌源市| 邢台市| 兴仁县| 阜平县| 苗栗市| 息烽县| 宜兴市| 仲巴县| 广州市| 达日县| 建湖县| 蓬溪县| 杭锦旗| 独山县| 通河县| 泸水县| 长岭县| 连平县| 阜平县| 明光市| 阳春市| 石屏县| 博乐市| 历史| 东乡县| 上高县| 乐昌市| 永兴县|