【发布时间】:2018-12-15 22:26:40
【问题描述】:
由于某种原因,这段代码会起作用:
class Foo
@foo = "foo"
end
Foo.new.@foo # => "foo"
我明白了,这个特性已经在标准库规范中使用了,但它似乎没有被记录。那么问题来了,该功能的状态如何,应该使用它吗?
【问题讨论】:
-
我想现在可以使用它,但为什么呢?你总是可以使用
Foo.new.foo对吧? -
对于
Foo.new.foo,您需要定义它。例如getter :foo。它看起来更像是一个问题,我建议to report it。如果您想保持代码兼容,通常不应使用未记录的功能。它可能会在标准库中存在一段时间,直到某些东西被修复并且交付的库将依赖于适当的机制。
标签: instance-variables crystal-lang undocumented-behavior