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”一样,你创建了一个字符串文字的价值“酒吧”. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |