假設我有@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