2013-03-28 19 views
0

所以我有這個變量,currentPartNumber,它開始等於0.我想要發生的是在我的函數中,如果變量等於零,它將更改爲1,並將文本打印出來。我的第二個功能是一樣的 - 如果在我的第一個功能中變量變爲1,並且等於1,我希望變量變爲2,打印出文本。如何在scala變更中創建變量?

問題是:如何讓我的變量隨每個函數調用而改變?

var currentPartNumber = 0 

def roomOne():Unit = { 
    if (currentPartNumber < 1) { 
     var currentPartNumber = 1 
     println("You now have parts 1 of 4.") 
    } else { 
     println("This part cannot be collected yet.") 
    { 
    } 


def roomTwo():Unit = { 
    if (currentPartNumber = 1) { 
     var currentPartNumber = 2 
     println("You now have parts 2 of 4.") 
    } else { 
     println("This part cannot be collected yet.") 
    { 
    } 

回答

1

的一類,其中roomOne()roomTwo()可以訪問和修改其聲明currentPartNumber

class Parts{ 
    var currentPartNumber = 0 

    def roomOne():Unit = { 
    if (currentPartNumber < 1) { 
     currentPartNumber = 1 
     println("You now have parts 1 of 4.") 
    } else { 
     println("This part cannot be collected yet.") 
    } 
    } 

    def roomTwo():Unit = { 
    if (currentPartNumber == 1) { 
     currentPartNumber = 2 
     println("You now have parts 2 of 4.") 
    } else { 
     println("This part cannot be collected yet.") 
    } 
    } 
} 



scala> :load Parts.scala 
Loading Parts.scala... 
defined class Parts 
scala> var parts = new Parts 
parts: Parts = [email protected] 
scala> parts.currentPartNumber 
res0: Int = 0 
scala> parts.roomOne 
You now have parts 1 of 4. 
scala> parts.roomTwo 
You now have parts 2 of 4. 
+0

這有效,但我的情況非常簡單,所以其他答案工作得很好。雖然謝謝! – Chris 2013-03-28 04:56:42