以下のように、親メソッドからwrite_on_spreadsheetから子メソッド( copy_formatting_to_specified_rows)に変数を引き渡す場合、
関数の引数として渡すべきか、インスタンス変数にして引き渡すべきかどっちがいいのでしょうか。
理由とともに教えて下さい。
なお、プログラムは質問用に書いたものでテストはしていないので、細かいミスはお見逃し下さい。m(__)m
個人的にそれぞれのデメリットは
引数・・・メリット/デメリット
スコープ範囲が限定されるので、バグ混入を防げる。/引数が場合によっては4つや5つになってしまい、記述が煩雑になる。
インスタンス変数・・・記述がシンプル/変数のスコープ範囲がメソッドの外にに及んでしまう。
なお、ここで使ってるとgemは、グーグルスプレッドシートのレンジ(行、列)に値を入れたりするVBA的なものです。
require google-drive
class Spreadsheet
def write_on_spreadsheet(max_row, num)
#グーグルスプレッドシートに書き込みます。
(1..max_row).each do |row |
spreadsheet(row, 1) = num
if spreadseet(rowl, 1) == “100”
#特定の行には、セル(1,5)のフォーマットをコピーします。
copy_formatting_to_specified_rows(max_row,row,num)
get_days(
break
end
end
end
def copy_formatting_to_specified_rows(max_row,num)
(row..max_row).each do |row|
~略~
end
end
def get_days
~略~
end
end
sh = Spreadsheet.new
sh.write_on_spreadsheet(230,15)
お礼
ありがとうございます。