2016-04-22 21 views
0

私はループを持っていて、文字列をi +(i-1)の値に代入したいが、どのように進めるか分からない。このコードでRuby - 文字列内の評価

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

それが最終的にデータベーステーブルに関連するだろうと答えは文字列でなければなりません。

文字列内でこれを評価する最も良い方法は何ですか、私はこれのいくつかのバリエーションを試しましたが、何か役立つポインタが大いに感謝するように運がなかった。

+1

どのような結果を見たいですか? – rootatdarkstar

+0

私は、i = 20の場合、回答が39などを返すような形式で回答したいと考えています – Nowandthen98

+2

なぜそれをしたいのか説明することは役に立つかもしれません。一般的に、文字列にコードを貼り付けて評価することはお勧めしません。また、 'eval'を使用しないコードを動的に生成する方法もあります。今はXY問題のように聞こえ、Xの代わりにYについて質問しています。 –

答えて

1

多分このようなものでしょうか?

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

Map返し、その後Rageを取り、各要素に対してブロックに書かれた加算を行うとします、我々はより多くのmap&:to_sに一度渡しArrayは(ArrayRangeが列挙型である)にto_sをオンRubyのシンタックスシュガーである変換マップに渡すことができるブロック。それは等しいです.map {|i| i.to_s}

+0

'sth'は使わないでください。 Stack Overflowはディスカッションフォーラムではありません。オンライン参考書のようなものです。正確な文法と明確さを重視しています。また、コードが問題の解決策である理由を説明してください。単にコードを渡すだけでこの問題は解決されます。それを使用する理由を説明することで、同様の問題が発生しても将来的に役立ちます。 –

+0

申し訳ありませんが、私の悪い。あなたが提案したとおりに修正しました – Jan

関連する問題