質問するログイン新規登録

回答編集履歴

1

改善

2017/05/11 09:36

投稿

haneru
haneru

スコア440

answer CHANGED
@@ -44,4 +44,39 @@
44
44
 
45
45
  なぜこのような実装にしたかと言うとこの方がのちにコードを変える際に手間がかかりにくいからです
46
46
 
47
- そして`mae`メソッドと`self.kiyosi`メソッドに引数を渡せるようにしたのはのちに秒数を変えたくなった際に変更がしやすいようにしたためです。
47
+ そして`mae`メソッドと`self.kiyosi`メソッドに引数を渡せるようにしたのはのちに秒数を変えたくなった際に変更がしやすいようにしたためです。
48
+
49
+ ##変更
50
+ ```
51
+ class Zundoko
52
+ attr_accessor :zun ,:doko,:arr
53
+
54
+ def initialize(zun,doko,arr)
55
+ @zun = zun
56
+ @doko = doko
57
+ @arr = arr
58
+ end
59
+
60
+ def self.kiyosi(secound,arr)
61
+ arr.each do |str|
62
+ print str
63
+ sleep(secound)
64
+ end
65
+ end
66
+
67
+ def mae(secound)
68
+ 4.times do
69
+ puts @zun
70
+ sleep(secound)
71
+ end
72
+ puts @doko
73
+ end
74
+ maekoe = Zundoko.new("ズン","ドコ",["キ・","ヨ・","シ!"])
75
+ maekoe.mae(0.2)
76
+ self.kiyosi(0.5,maekoe.arr)
77
+ end
78
+ ```
79
+ 前述のコードだと`self.kiyosi`がDRYに反しているし、冗長だなと思い、変更しました。
80
+ また、`@arr`を追加したことにより、`キ・ヨ・シ!`の部分も変更しやすいものとなっております。
81
+ `Zundoko.new`の引数に渡す配列の中身を`["ケ・","ン・","ス・","ケ!"]`にした場合、このコードですと0.5秒間隔で
82
+ ケ・ン・ス・ケ!と表示されるようになるでしょう