Nested Functions and Blocks
Scala支援nested function語法,這樣有較好的encapsulation。nested functions須要放入某個block中,block是一個由{ } 包圍住的expression,所以可以作為一個function body,因為expression一定要return value。以下是利用Scala來實作牛頓法逼近平方根:
上圖中block內的functions會遮蔽block外的同名functions,相當於宣告一個local function,其scope範圍與一般local variables一樣。
所以上圖的實作可以把裡面nested functions的x parameter去掉,因為所有的nested functions都在最外層x的lexical scope內:
如此就乾淨多了。
沒有留言:
張貼留言