假设我有@chicken,但我想通过计数循环将其重命名为@ chicken1和@ chicken2。一旦我用"chicken#{@count}"
之类的东西生成名称,我该如何将输出变成类似@ chicken1等的输出?修改实例变量的名称
0
A
回答
0
Ruby有这样的任务的方法remove_instance_variable
class A
def initialize
@chicken = 'chichen'
end
def rename
count = 1
instance_variable_set(:"@chicken#{count}", @chicken)
end
def remove
remove_instance_variable(:@chicken)
end
end
a = A.new
a.instance_variables #=> [:@chicken]
a.rename
a.instance_variables #=> [:@chicken, :@chicken1]
a.remove
a.instance_variables #=> [:@chicken1]
a.instance_variable_get("@chicken1") #=> "chicken"
+0
请不要使用'eval',除非它绝对*不可避免。 'instance_variable_set'在这里可以做得很好。 –
+0
@JörgWMittag,已修复 – megas
相关问题
- 1. Python:基于变量的名称实例
- 2. 如何修改变量名称?
- 3. 在C中修改变量名称#
- 4. PersistenceConstructor参数变量名称不匹配的实例变量名
- 5. 实例变量在不修改循环
- 6. 修改私有实例变量
- 7. 修改后重置实例变量
- 8. 实例名称作为变量
- 9. C#'echo?/ literal?'变量名称类实例
- 10. PHP将动态变量名称修改为静态变量名称
- 11. python:使用包含变量的名称访问实例变量
- 12. 实例变量的别名?
- 13. 如何修改弹性搜索实例的群集名称?
- 14. 如何通过Amazon EC2 API修改实例的“名称”属性?
- 15. 更改变量名称matlab
- 16. 如何修改名称给定的变量的值
- 17. BASH:根据变量的名称修改数组的内容
- 18. 实例化名称修改verilog下生成块
- 19. C++更改实例变量
- 20. 返回具有最高'someValue'实例变量的类实例的名称
- 21. 用另一张纸的变量修改工作表名称
- 22. 不能改变实例变量的值
- 23. 在黄瓜的proc中修改实例变量围绕钩
- 24. 修改NSMutableDictionary实例变量的正确方法?
- 25. 访问或修改AsyncTask中的实例变量
- 26. 一个getter真的不会修改一个实例变量吗?
- 27. 在列表理解的同时修改变量实例
- 28. 为什么“错误”的实例变量被修改?
- 29. as3变量名称和实例名称之间的区别是什么?
- 30. 如何打印名称和值的类的实例变量?
这是可以做到的,但为什么你要这样做?听起来像你应该使用数组。 – Thomas
那么,基本上我正在生成谷歌地图,这对我来说太复杂了,无法为所有需要推入的数据做一个数组。 – Abram
其实,我在下面过早地点击了嘀嗒......它并不是真正的我正在寻找..我真正想要的是能够创建一个新的实例变量使用计数..甚至像一个随机数,如“@ x#{rand()}” – Abram