加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 如何使用instance_variable_set正确设置实例变

发布时间:2020-12-17 03:36:15 所属栏目:百科 来源:网络整理
导读:我正在查看 instance_variable_set的文档,看到给出的示例代码执行此操作: obj.instance_variable_set(:@instnc_var,"value for the instance variable") 然后允许您在任何类的实例方法中以@instnc_var访问变量. 我想知道为什么需要冒号:在@instnc_var之前.
我正在查看 instance_variable_set的文档,看到给出的示例代码执行此操作:

obj.instance_variable_set(:@instnc_var,"value for the instance variable")

然后允许您在任何类的实例方法中以@instnc_var访问变量.

我想知道为什么需要冒号:在@instnc_var之前.结肠做什么?

解决方法

我的第一直觉是告诉你不要使用instance_variable_set,除非你真的知道你使用它的是什么.它本质上是元编程的工具,或者是绕过实例变量可见性的黑客.

也就是说,如果该变量没有setter,则无论如何都可以使用instance_variable_set进行设置.如果你控制代码只是创建一个setter,那就好得多.

尝试查看accessors以了解绝大多数实例变量设置需求.它们是一种习惯性的方法,可以“免费”获取实例变量的getter和setter,而无需编写这些函数.

如果确实需要instance_variable_set,则允许第一个参数为symbol,这是要设置的实例变量的名称.冒号是Ruby语言的一部分,就像一个“符号文字”:当你输入:foo时,你创建了一个值为foo的符号,就像你在代码中直接输入“bar”一样,你创建了一个字符串文字的价值“酒吧”.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读