2016-04-22 220 views
0

我有一個循環,並在其中想要爲i +(i-1)的值分配一個字符串,但我不知道如何進展。紅寶石 - 字符串內的評估

(1..50).each do |i| 
    answer = "#{i+(i-1)}" 
end 

在此代碼中,答案必須是字符串,因爲它最終將與數據庫表相關。

什麼是最好的方式來評估這個字符串內,我已經嘗試了幾個變種,但沒有任何運氣,所以任何有用的指針將不勝感激。

+1

你想看到什麼結果? – rootatdarkstar

+0

我想要一個格式的答案,如果我= 20,答案給出39等 – Nowandthen98

+2

這可能是有用的,我們解釋爲什麼你想這樣做。通常不推薦將代碼粘貼到字符串中並對其進行評估,並且Ruby中有許多方法可以動態生成不使用'eval'的代碼。現在這聽起來像一個XY問題,你問的是Y而不是X. –

回答

1

也許這樣?

(1..50).map{|i| i + (i-1)}.map(&:to_s) 

Map將採取Rage和執行加法寫入塊中的每個元件上,然後返回轉化ArrayArrayRange是可枚舉類型),我們一次傳遞更多的map&:to_s是紅寶石的語法糖,輪流to_s成一個可以傳遞給地圖的塊。它等於.map {|i| i.to_s}

+0

請不要使用'sth'。 Stack Overflow不是一個論壇,它更像是一本在線參考書。我們重視正確的語法和清晰度。另外,請解釋爲什麼代碼是問題的解決方案。簡單地發出代碼只能解決這個問題。解釋爲什麼使用它會在將來出現類似問題時提供幫助。 –

+0

對不起,我的壞。我按照你的建議糾正了它 – Jan