質問編集履歴

1

修正しました

2018/04/04 01:12

投稿

murabito
murabito

スコア108

test CHANGED
File without changes
test CHANGED
@@ -1,3 +1,17 @@
1
+ # 注釈
2
+
3
+ 1. KSwordOfHasteさんからの回答を拝見し、上手く初期の質問文が伝わっていない部分があったようなので質問文を一部修正、追記します。
4
+
5
+
6
+
7
+ 2. 他言語にもGeneratorがあるようなので、タグを追加させて頂きました。
8
+
9
+
10
+
11
+
12
+
13
+ # 質問
14
+
1
15
  generatorの使い道というのは非同期処理を同期的っぽく書く時以外には、どんな使い道がありますか?
2
16
 
3
17
 
@@ -10,11 +24,21 @@
10
24
 
11
25
 
12
26
 
13
- generatorの特徴を考えると1つ目は関数と違って途中で処理を中断出来、また再開できるということ、2つ目は使う側が「くれ!」というと、その度iteratorと同じように提供できる値が尽きるまで「どうぞ!」と渡してくれということ、最後に3つ目は、iteratorにはない特徴として、next()の引数に値をgenerator側に渡すことで、generatorとやりとりができるということかなと思います。
27
+ 以下僕なり認識してるgeneratorの特徴まです。
14
28
 
15
29
 
16
30
 
31
+ 1. 関数と違って途中で処理を中断出来、また再開できる
32
+
33
+ 2. iteratorと同様に、generatorも使う側が「くれ!」というと、その度にgeneratorが提供できる値が尽きるまで「どうぞ!」と使う側に渡してくれる
34
+
35
+ 3. next()の引数に値をgeneratorを使う側からgenerator側のyieldに渡すことで、generatorとやりとりができる
36
+
37
+ 4. generatorは他のgeneratorに処理を委譲できる
38
+
39
+
40
+
17
- これを踏まえた上で何に使えるのかなと考えては見るのですが、やはり用途が思いつきません。
41
+ これを踏まえた上で何に使えるのかなと考えては見るのですが、やはり用途が思いつきません。
18
42
 
19
43
 
20
44