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 ...