Refactoring2-9
わかりやすい関数名の導入.
わたしは,こっちのほうがわかりにくいのですが..... >|ruby| require 'sparkline'
def zero_or_one
rand(2)
end
def one_or_minus_one
(zero_or_one * 2) - 1
end
def next_value(y_values)
y_values[-1]+one_or_minus_one
end
def y_values
result = [0] 10.times { result << next_value(result) } return result
end
puts Sparkline.new(y_values).to_svg
< |
やっぱり問題発生.y_valuesという関数名を使っていると,sparklineで名前が重複してしまいおかしな挙動をします.正解は,
- mainで,y_values -> make_y_values
- sparkline.rbで,y_values -> @y_values
とする. >|ruby| require 'sparkline' require 'pp'
def zero_or_one
rand(2)
end
def one_or_minus_one
(zero_or_one * 2) - 1
end
def next_value(y_values)
t = y_values[-1] + one_or_minus_one
end
def make_y_values
result = [0] 1000.times { result << next_value(result) } return result
end
puts Sparkline.new(make_y_values).to_svg
< |
Keyword(s):
References:[Refactoring2] [RubyPrimary]