Crystal 静态变量
Crystal static variables
Crystal 是否有静态变量,或者我必须在文件/全局范围内使用全局变量?
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
Crystal 没有作用域为方法的静态变量。为此,您需要使用 class variables:
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
Crystal 是否有静态变量,或者我必须在文件/全局范围内使用全局变量?
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
Crystal 没有作用域为方法的静态变量。为此,您需要使用 class variables:
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