在具有一些实例变量的 Crystal 类中:
class Coordinate
def initialize(x : Int32, y : Int32)
@x = x
@y = y
end
end
为了访问所述变量,您需要编写如下方法:
...
def x
@x
end
在本例中这很好,但如果您需要访问大量变量,则可能会非常乏味且耗时。有没有一种方法可以普遍访问类的任何变量?
我确实想过尝试找到与 ruby 相当的东西eval()
,但由于 Crystal 是编译的,所以显然没有太多可以使用的东西。
理想的解决方案会做这样的事情:
...
def get(var)
@var
end
Crystal 标准库提供了简化getter 和 setter 方法定义的宏:
用于
property
读/写访问或getter
只读访问: