scala 學習筆記六 推導

2021-09-08 14:09:56 字數 861 閱讀 8198

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學習筆記 六 陣列

scala中提供了一種資料結構 陣列,其中儲存相同型別的元素的固定大小的連續集合。陣列用於儲存資料的集合,但它往往是更加有用認為陣列作為相同型別的變數的集合。取替宣告單個變數,如number0,number1,和number99,宣告乙個陣列變數,如號碼和使用numbers 0 numbers 1 ...

Scala學習筆記

scala學習筆記 一.scala中集合的常用方法 首先定義兩個陣列集合,用於測試 scala val arr1 array 1,2,3,4 arr1 array int array 1,2,3,4 scala val arr2 array 3,4,5,6 arr2 array int array ...

Scala學習筆記

1 閉包 var a 3 var addfun x int x a var b addfun 10 println b addfun 就是個和物件無關的函式,區域性變數,使用方法和函式一樣,但是好像不推薦這種寫法。2 類的建立,簡單使用abstract class bparent 構造函式引數會自動...