scala 學習筆記六 推導
阿新 • • 發佈:2018-07-24
表達式 過濾 一個 mage 介紹 val 關鍵字 定義 循環
1、介紹
在Scala中,推導將生成器、過濾器、和定義組合在一起。
2、例子
有一種將result用作val(而不是var)的方式,:“就地”構建result,而不是逐項構建,利用yield關鍵字,當你聲明yield n時,它會把n交出來,使其成為result的一部分,下面的例子
yield 總是會填充容器,但是在第194行並沒有聲明result的類型,Scala會從推導要遍歷的容器中推斷出類型。還可以在推斷內部定義值。
註意:沒有將n和isOdd聲明為val或var。n和isOdd在循環中每次叠代時都會發生變化,但是不能人為修改他們,依靠Scala來完成這個任務。可以將他們看作循環每次叠代時都會設置其值的臨時變量。
yield表達式也可以組合
註意,只有在推導內部才能不為新標識符聲明val或var
推導可以嵌套
這裏我們讓類型推斷來確定yielding3的返回類型,每個yield都會產生一個Vector,因此最終結果是一個Vector的Vector
scala 學習筆記六 推導