与えられたブロックを評価して、最終的に配列を返す。
p [*1..10].map { |a| a * 2 }
=> [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
デザインパターンのひとつStrategy Pattermの例を見つけたので実行してみました! ほとんどコピペで参考サイトに書いてあるのと同じ!けど練習と知識定着の為に、一つ新しいクラスを作ってこのまとめも書きました笑
まず親クラス今回はReport
クラスがあって、ここではレポートを出力するメソッドoutput_reort
が存在する。
ただHTML形式で書き出したい場合と、Text形式で書き出したい場合がある。その場合if文を書いてしまうとど形式が増えるたびにどんどん条件分岐が増えてしまい
管理がかなり大変になる。
なのでレポートの形式をクラスに格納してしまって、呼び出したいときに呼び出すようにしよう!というのがストラテジーパターンの考え方。 今回は、3つの形式があります
def fizzbuzz(num) | |
1.step(num) do |n| | |
if n % 15 == 0 | |
puts 'FizzBuzz!' | |
elsif n % 3 == 0 | |
puts 'Fizz!' | |
elsif n % 5 == 0 | |
puts 'Buzz!' | |
else | |
puts n |