2012-01-04 11 views
2

ruby​​でループを使って変数を作成する上品な方法があるのでしょうか? 複数の変数をループで作成する?

は私が

def workhour_ideally 
    days = [ "monday", "tuesday", "wednesday", "thursday", "friday" ] 

    days.each do |smack| 
    @"smack" = whatever 
    end 
end 

を行うことができるようにしたいことはルビーでこれは可能です私は

def workhours 
    @monday = blah 
    @tuesday = brah 
    @wednesday = bro 
    @thursday = blap 
    @friday = blagh 
end 

ループ

のいくつかの並べ替えでこれを入れたいと言いますか?

+1

関連する質問:http://stackoverflow.com/questions/1778638/idiomatic-object-creation-in-ruby –

答えて

5

はい、これはRailsでも可能です。いいえ、あなたはそれをしてはいけません。私が推測しなければならないのなら、これは何らかのPHPismだと思います。あなたが望むように、あなたはこれらを反復処理することができます

@days = { 
    :monday => blah, 
    :tuesday => brah, 
    # ... 
    :friday => blagh 
} 

:より良い何

はハッシュを使用することです。そのうちの1つを参照するのは、@mondayではなく、@days[:monday]というわずかなタイピングです。

適切なデータ構造を使用すると、そのデータ構造を操作して繰り返し処理することができ、完全にテストするあらゆる機会が提供されます。

+1

ありがとうございました。私はいくつかのコードをクリーンアップするように見えます。 –

2

はい、可能です。私はそれがinstance_variable_setと呼ばれていると思うし、悪いを使用してより安全に行うだろうeval

しかし実際にはハッシュを使用してください。

関連する問題