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で名前が重複してしまいおかしな挙動をします.正解は,

  1. mainで,y_values -> make_y_values
  2. 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

<
Last modified:2020/08/04 18:11:54
Keyword(s):
References:[Refactoring2] [RubyPrimary]