2017-10-11 14 views
1

크리스탈에 정적 변수가 있습니까? 아니면 전역 변수를 파일/글로벌 범위와 함께 사용해야합니까?크리스탈 정적 변수

def test(value) 
    static var = 1 
    var += value 
    return var 
end 

pp test 0 #=> 1 
pp test 1 #=> 2 
pp test 1 #=> 3 
pp test 0 #=> 3 

답변

4

크리스탈에는 메서드 범위가없는 정적 변수가 있습니다.

class Test 
    @@var = 1 
    def self.test(value) 
    @@var += value 
    return @@var 
    end 
end 

pp Test.test 0 #=> 1 
pp Test.test 1 #=> 2 
pp Test.test 1 #=> 3 
pp Test.test 0 #=> 3 

은 또한 매크로 class_property, class_setter 또는 class_getter

class Test 
    class_property var = 1 
end 

Test.var += 0 
pp Test.var #=> 1 
Test.var += 1 
pp Test.var #=> 2 
Test.var += 1 
pp Test.var #=> 3 
Test.var += 0 
pp Test.var #=> 3 
을 사용할 수 있습니다 : 당신은 이것에 대한 class variables를 사용해야합니다