《Scala by Example》第11章 變化的狀態 -开发者知识库

《Scala by Example》第11章 變化的狀態 -开发者知识库,第1张

  本章里,將會引入副作用(side effects)並研究它們的行為。我們最終會看到要從基本上修改我們之前寫過的代碼。

11.1 有狀態的對象

  通常,“狀態”是跟一系列的可以按一定計算方法變化的變量相關聯的。有一個更為抽象的關於“狀態”的概念(notion):如果一個對象的行為受它的歷史影響,這個對象就是有狀態的。

  如,一個銀行帳戶就是一個“有狀態”的對象。因為帳戶里的錢的數目是會隨時間變化而有不同。

  在Scala里,所有變化的狀態最終都是從變量得到的。用var來定義。

  在Scala里,每個被定義的變量要在定義的時候給一個初始化的值。例如像 var x : Int 這就不是一個變量定義,因為沒有初始值。如果不知道或者不關心,則可以用通配符來表示: val x : T = _ 

  真實世界里的對象在Scala里用含有變量成員的對象來表示。如,表示銀行帳戶:

class BankAccount {
private var balance = 0

def deposit(amount : Int) {
if (amount > 0) balance = amount
}

def withDraw(amount : Int) : Int
=
if ( 0 < amount &amp;& amount <= balance){
balance
-= amount
balance
}
else error("insufficient funds")
}

最佳答案:

本文经用户投稿或网站收集转载,如有侵权请联系本站。

发表评论

0条回复