回答編集履歴

1

改善

2017/05/11 09:36

投稿

haneru
haneru

スコア440

test CHANGED
@@ -91,3 +91,73 @@
91
91
 
92
92
 
93
93
  そして`mae`メソッドと`self.kiyosi`メソッドに引数を渡せるようにしたのはのちに秒数を変えたくなった際に変更がしやすいようにしたためです。
94
+
95
+
96
+
97
+ ##変更
98
+
99
+ ```
100
+
101
+ class Zundoko
102
+
103
+ attr_accessor :zun ,:doko,:arr
104
+
105
+
106
+
107
+ def initialize(zun,doko,arr)
108
+
109
+ @zun = zun
110
+
111
+ @doko = doko
112
+
113
+ @arr = arr
114
+
115
+ end
116
+
117
+
118
+
119
+ def self.kiyosi(secound,arr)
120
+
121
+ arr.each do |str|
122
+
123
+ print str
124
+
125
+ sleep(secound)
126
+
127
+ end
128
+
129
+ end
130
+
131
+
132
+
133
+ def mae(secound)
134
+
135
+ 4.times do
136
+
137
+ puts @zun
138
+
139
+ sleep(secound)
140
+
141
+ end
142
+
143
+ puts @doko
144
+
145
+ end
146
+
147
+ maekoe = Zundoko.new("ズン","ドコ",["キ・","ヨ・","シ!"])
148
+
149
+ maekoe.mae(0.2)
150
+
151
+ self.kiyosi(0.5,maekoe.arr)
152
+
153
+ end
154
+
155
+ ```
156
+
157
+ 前述のコードだと`self.kiyosi`がDRYに反しているし、冗長だなと思い、変更しました。
158
+
159
+ また、`@arr`を追加したことにより、`キ・ヨ・シ!`の部分も変更しやすいものとなっております。
160
+
161
+ `Zundoko.new`の引数に渡す配列の中身を`["ケ・","ン・","ス・","ケ!"]`にした場合、このコードですと0.5秒間隔で
162
+
163
+ ケ・ン・ス・ケ!と表示されるようになるでしょう