函數和Lambda表達式
Kotlin的函數
- 可以使用var,函數的不可變性必須自己保證
- 即可以使用流程控制語句,也可以把流程控制語句用作語法糖
- 參數是val,很好
函數特性
- 尾遞歸增加性能
- 函數類型直接作為參數或者表達式,而不需要函數式接口 - 感覺需要語法糖?
Lambda表達式
- Lambda表達式就是可以推斷出返回值類型的匿名函數的升級
- 可以使用非final的外部變量,因為kotlin採用捕獲機制製造副本,在Lambda脱離閉包工作時,副本直接相互獨立
- Lambda的return是退出,匿名函數到return是返回函數自身
Kotlin語法糖
類型
- ?表示不會拋null point, !!會拋
- 主構造函數的參數是成員變量
函數
- 省略返回值類型
- 單行表達式與類型推斷
- 函數調用可以混合命名參數和位置參數
- 參數默認值 :可以減少方法的重載 - 建議默認值參數寫在後面
- 可變參數vararg : 不需要放最後,但只能有一個,*arr傳入數組調用
Lambda
- 可以省略最後的return
- 支持類型推斷
- 甚至可以省略單個參數和->,用it代替
- 最後一個參數是Lambda時,支持尾隨閉包,並且可以省略(),所以建議函數類型的參數放在最後,而且比可變個數參數優先
本文章為轉載內容,我們尊重原作者對文章享有的著作權。如有內容錯誤或侵權問題,歡迎原作者聯繫我們進行內容更正或刪除文章。