2013-07-02 5 views
0

내 동료 중 한 명이 개체 내에서 선언 된 var이 개체의 멤버에 의해 변형되지 않은 흥미로운 스 니펫을 보여주었습니다. 누군가가 왜 이런 식으로 행동하는지 설명하면 좋을 것입니다.스칼라의 오브젝트에서 var를 변형 할 수 없습니까?

object SomeObject{ 
    var count = 1 
    def addToCount = count + 1 
    def printCurrentCount:Unit = {addToCount;println(count)} 
} 

// Exiting paste mode, now interpreting. 

defined module SomeObject 

scala> SomeObject.printCurrentCount 
1 

가 돌연변이 VAR 수 밖에없는 printCurrentCount 인쇄 2로해야 다음과 같이 코드는?

+0

당신이 당신이하지 생각하지 생각하는지 궁금 해요. 그것은 환상의 일종입니까? 그리고 만약 당신이 상상했던대로한다면, printCountCount를 printNextCount라고 부르지 않을까요? –

답변

5

귀하의 addToCount에는 1을 (를) 더하지 않습니다. count + 1을 계산합니다.

(동일 ... 자바처럼) 나는 당신이 의미한다고 가정

... 
def addToCount { count += 1 } 
... 
+1

과제의 부재가 완전히 간과되었습니다. 감사 –