亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何動態創建局部變量?

如何動態創建局部變量?

30秒到達戰場 2019-06-29 10:42:19
如何動態創建局部變量?我有一個變量var = "some_name"我想要創建一個新的對象并將它分配給some_name..我該怎么做?例如:var = "some_name"some_name = Struct.new(:name) # I need thisa = some_name.new('blah') # so that I can do this.
查看完整描述

3 回答

?
HUH函數

TA貢獻1836條經驗 獲得超4個贊

不能在Ruby1.9+中動態創建局部變量(可以在Ruby1.8中通過eval):

eval 'foo = "bar"'foo  # NameError: undefined local variable or method `foo' for main:Object

不過,它們可以在版本代碼本身中使用:

eval 'foo = "bar"; foo + "baz"'#=> "barbaz"

Ruby 2.1添加local_variable_set,但這也不能創建新的局部變量:

binding.local_variable_set :foo, 'bar'foo # NameError: undefined local variable or method `foo' for main:Object

這種行為不可能在不修改Ruby本身的情況下進行更改。另一種方法是考慮將數據存儲在另一個數據結構中,例如哈希,而不是許多局部變量:

hash = {}hash[:my_var] = :foo

請注意,兩者evallocal_variable_set 允許重新分配現有局部變量:

foo = nileval 'foo = "bar"'foo  #=> "bar"binding.local_variable_set :foo, 'baz'foo  #=> "baz"


查看完整回答
反對 回復 2019-06-29
  • 3 回答
  • 0 關注
  • 688 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號