scala裡關於val和var和可變 不可變的理解

2021-10-07 13:49:23 字數 373 閱讀 1445

**

眾所周知,scala裡面定義屬性分為val和var,不變和可變,而定義物件也分為可變和不可變,例如map和set,但是這倆者是有區別的,list和array是不可變的。

val定義乙個屬性,例如

val list = list(「hello」,「你好」);

這時候使用list += 「scala」方法會報錯,而換成 var list = list(「hello」,「你好」)就可以使用 list += 「scala」,其實物件並沒有改變,也不能改變,前面說了list 不能改變,此處而是物件指向位址改變了,重新初始化了乙個list物件。

所以,val 和var修飾變數,意思說的是記憶體位址可否改變,而物件的可變和不可變,表示的是該物件的實際內容是否可變。

簡談scala 中的val 與 var

斷斷續續學習scala也有一段時間了,初期總對val 與var 的理解不太透徹,今天來做做總結。一般都知道val 表示不可變,var表示可變,比如 val s hello s world 錯誤,不能對val重新賦值 var i 1 i 2 沒有問題 但是在碰到可變與不可變資料結構的時候,容易造成迷惑...

js裡text和val的區別

text 獲取或者改變指定元素的文字 html 獲取或改變指定元素的html元素以及文字 val 獲取或者改變指定元素的value值 一般是表單元素 以上3個都是jquery類庫中的語法 基本沒有什麼區別,作用都是獲得當前物件的value值 一般是表單元素 只是,this.value是js的原生語法...

Scala柯里化和反柯里化

名詞解釋 在電腦科學中,柯里化 currying 是把接受多個引數的函式變換成接受乙個單一引數 最初函式的第乙個引數 的函式,並且返回接受餘下的引數且返回結果的新函式的技術。柯里化舉例說明 def curry1 a,b,c a a,f a,b c b c b b f a,b 這個函式的結果是乙個高階...