【发布时间】:2023-03-25 16:51:01
【问题描述】:
使用@name 和name(带有attr_reader)有什么区别?他们使用不同的路径方式:@name 是直接的,而name 使用一种方法到达@name。但除此之外,还有什么不同吗?结果是一样的。
【问题讨论】:
标签: ruby instance-variables accessor
使用@name 和name(带有attr_reader)有什么区别?他们使用不同的路径方式:@name 是直接的,而name 使用一种方法到达@name。但除此之外,还有什么不同吗?结果是一样的。
【问题讨论】:
标签: ruby instance-variables accessor
但除此之外还有什么不同,因为结果是一样的。
除此之外?不多。只是attr_reader 为您提供了一个方法(如您所知),因此您可以对方法执行所有操作:公开/私有、装饰、在子类中覆盖、从模块中包含等等。
哦,而且实例变量也更难从类外部访问。这就是为什么 attr_reader 和相关的助手首先存在的原因(以便在公共方法中轻松包装 ivars)。
【讨论】: