1.表達(dá)式函數(shù)體:用單行表達(dá)式與符號(hào)的語法來定義的函數(shù);例:fun sum(a:Int,b:Int) = a+b
代碼塊函數(shù)體:普通的函數(shù)聲明可叫作代碼塊函數(shù)體;例:fun sum(a:Int,b:Int):Int{return a+b }
2.如何判斷表達(dá)式函數(shù)是否需要顯示聲明返回類型:
? 2.1如果他是一個(gè)函數(shù)的參數(shù)-必須需要。
? 2.2如果他是一個(gè)非表達(dá)式定義的函數(shù)-除了返回Unit,其他情況必須使用。
? 2.3如果他是一個(gè)遞歸函數(shù)-必須使用。
? 2.4如果他是一個(gè)共有方法的返回值-為了更好的代碼可讀性及輸出類型的可控性,建議使用。
除了以上情況,你可以嘗試盡量不顯式聲明類型,直到你遇到下一個(gè)特殊情況。
3.關(guān)鍵字
? 知識(shí)擴(kuò)展:
1.在Java中所有的基本類型和引用變量(對(duì)象引用)都在棧中存儲(chǔ),棧中數(shù)據(jù)的生存空間一般在當(dāng)前的scopes內(nèi),也就是“{}”的部分,比如:函數(shù)的參數(shù)值,局部變量等,是自動(dòng)清除的。
3.1 val:引用不可變(通java?final)。?優(yōu)先使用val來實(shí)現(xiàn)副作用。