質問編集履歴

1

追記

2017/10/05 10:34

投稿

dongw
dongw

スコア119

test CHANGED
File without changes
test CHANGED
@@ -105,3 +105,73 @@
105
105
  となって配列の中身が一つづつ格納されている使い方は分かるのですが、
106
106
 
107
107
  今回の||の使い方は分かりませんでした。合わせて教えて頂けるとありがたいです。
108
+
109
+
110
+
111
+ def with_current_time
112
+
113
+ yield Time.now
114
+
115
+ end
116
+
117
+
118
+
119
+ with_current_time do |now|
120
+
121
+ now.year
122
+
123
+ end
124
+
125
+
126
+
127
+ お二方回答ありがとうございます。
128
+
129
+ 最初に勘違いしていたのは
130
+
131
+ `yield Time.nowは` `yield(Time.now)`という形だったのですね。
132
+
133
+
134
+
135
+ 呼び出し順としては
136
+
137
+ ```
138
+
139
+ with_current_time do |now|
140
+
141
+ now.year
142
+
143
+ end
144
+
145
+ ```
146
+
147
+ で、now.yearをブロックとしてメソッド(with_current_time)に渡す。
148
+
149
+ メソッド内のyield(Time.now)でyieldを呼び出し。
150
+
151
+ ここでのyield は `now.year`
152
+
153
+ 引数で渡ってきたTime.nowは
154
+
155
+
156
+
157
+ ```
158
+
159
+ with_current_time do |now|
160
+
161
+ now.year
162
+
163
+ end
164
+
165
+ ```
166
+
167
+ |now|が受け取る。
168
+
169
+ つまりnowはTime.nowになっている。
170
+
171
+ 繋げてメソッドを読んで
172
+
173
+ `Time.now.year`
174
+
175
+
176
+
177
+ ということで間違いないでしょうか?