2016-04-22 82 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