這個問題很有可能被問到,但我找不到答案。如何以同樣的方式處理多個變量?
我有四個變量:
a,b,c,d = [a,b,c,d].map{|myvar| myvar+1 }
我怎樣才能讓這條線越幹(保持它緊湊),即實現無重複的變量名稱相同的變化?
這個問題很有可能被問到,但我找不到答案。如何以同樣的方式處理多個變量?
我有四個變量:
a,b,c,d = [a,b,c,d].map{|myvar| myvar+1 }
我怎樣才能讓這條線越幹(保持它緊湊),即實現無重複的變量名稱相同的變化?
我有一個不斷增長的懷疑短答案(用於與整數這個具體的例子)是「沒有辦法」
由於相同的理由,在回答中描述在我剛纔的問題:
replacing referenced Integer value in Ruby like String#replace does
upda TE:
如果我們在操作變量是一個數組,散列或字符串,並且他們保持相同的數據類型所執行的操作後,它的乾燥,更緊湊,節省內存使用替代
[a,b,c,d].each{|v| v.replace(v + [1])} #example for an array
中的代碼保持相似,而來自其他問題的答案與此問題無關。 – doesterr 2013-02-15 12:16:49
這個問題是關於變量的。我一定會用地圖!而不用問一個問題,我是否有時間重寫所有的數組。提到的答案顯示替換不能用於整數。因此我不能寫例如[a,b,c,d] .each {| v | v.replace(V + 1)} – 2013-02-15 19:26:07
不要創建單獨的變量,請將值從一開始放在Array或Hash中。
data = []
data << 1
data << 2
data << 3
data << 4
data = data.map { |value| value + 1 }
data.inspect # => [2, 3, 4, 5]
或
data = {}
data[:a] = 1
data[:b] = 2
data[:c] = 3
data[:d] = 4
data.each { |key, value| data[key] = value + 1}
data.inspect # => {:a=>2, :b=>3, :c=>4, :d=>5}
的快速方法寫這是:a,b,c,d = [1,2,3,4] .map(&:succ) – 2013-02-15 00:05:42
你可能想評論我的帖子,我沒有看到它是如何與我的 – 2013-02-15 05:26:33