Scala學習筆記

2021-08-18 08:59:51 字數 2107 閱讀 6288

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(3, 4, 5, 6)

1.union並集

scala> val result = arr1.union(arr2)

result: array[int] = array(1, 2, 3, 4, 3, 4, 5, 6)

2.intersect交集

scala> val result = arr1.intersect(arr2)

result: array[int] = array(3, 4)

3.diff差集

scala> val result = arr1.diff(arr2)

result: array[int] = array(1, 2)

二.並行化集合(多執行緒)

1.par並行化集合【好像windows中不能執行?難道windows中的scala不支援多執行緒?】

scala> val arr =array(1,2,3,4,5)

arr: array[int] = array(1, 2, 3, 4, 5)

scala> arr.par.reduce(_+_)

res0: int = 15

可以看出真是因為多執行緒的原因,導致計算結果並不相同:

scala> arr.par

.fold(10)(_+_)

res8: int = 55

scala> arr.par

.fold(10)(_+_)

res9: int = 65

靜態物件

1.在scala中,靜態物件就是用object修飾的物件,靜態物件也叫做單例物件,因為其只有乙份例項。使用**驗證如下:

object singleobject 

}

2.定義在靜態物件中的方法/變數都是靜態方法/變數

3.當這個靜態物件和類名相同,且在同乙個檔案中時,這個物件稱之為該類的伴生物件

4.在scala中,檔名和類名可以不同

5.val var private private[this]修飾的變數的區別

2.scala中類的構造器

object

person

}class

person

(val age: int,val name:string)

object

person

}class

person

(val age: int,val name:string)

println("執行主構造器")

}

object

person

extends

}

object myarray

defmain

(args :array[string]):unit =

}

2)object是不能寫構造引數的

3)val m1 = myarray直接獲取myarray的單例

8.在乙個object中可以呼叫另外乙個object中的靜態方法或者是靜態屬性

object myarray

}object two

}

9.靜態物件和類的區別

val a1 = array(1,2,3,4,5) --->這裡的array就是靜態物件

val a2 = new array[int](3) --->這裡的array就是類

Scala學習筆記

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

Scala 學習筆記

object a val u fab 15,list 1,1 val f p int print p t 變長引數 def sum nums int int int def main args array string unit def f p int int print f 4 object ab...

Scala學習筆記04

try.catch.finally 處理異常的語句注意這裡的返回值,處於try字句裡面。finally裡如果顯示地加入return,則返回值處於finally字句裡。示例 def trytest catch finally 輸出 try 如果,finally字句裡寫成 return finally ...