3

由于某种原因,此代码将起作用:

class Foo
  @foo = "foo"
end

Foo.new.@foo # => "foo"

我看到,这个特性已经在标准库规范中使用了,但它似乎没有被记录。所以,问题是,该功能的状态是什么,应该使用它吗?

4

1 回答 1

2

此功能目前用于内部目的,但讨论它以限制对实例变量的外部访问。类似于protected方法的行为可能很有用。

这个问题是crystal-lang/crystal#6066

我通常会避免使用此功能,因为它没有文档记录并且很可能在某些时候被更改。

于 2018-07-08T12:43:58.150 回答