質問編集履歴
1
質問の主旨がはっきりしていないようなので、追記した。
test
CHANGED
File without changes
|
test
CHANGED
@@ -111,3 +111,45 @@
|
|
111
111
|
どこか他の場所でList<E>クラスとListIterable<E>クラスの関係性を示すコードがあるのでしょうか?
|
112
112
|
|
113
113
|
それともこのコードでList<E>クラスのインスタンスのiteratorプロパティは適切に初期化されるのでしょうか?
|
114
|
+
|
115
|
+
|
116
|
+
|
117
|
+
2020/11/29/15:30追記
|
118
|
+
|
119
|
+
質問の主旨なのですが、
|
120
|
+
|
121
|
+
|
122
|
+
|
123
|
+
iterable、iteratorなどの基本を学ぶ中で、
|
124
|
+
|
125
|
+
|
126
|
+
|
127
|
+
リストリテラルなどで生成したList<E>型のインスタンスがfor-inループでイテレートできる以上、List<E>インスタンス内のiteratorプロパティに有効なIterator<E>(あるいはそのサブクラス)のインスタンスがセットされているはずなので、それをソースコードで確認したい、
|
128
|
+
|
129
|
+
|
130
|
+
|
131
|
+
という考えが発生しました。
|
132
|
+
|
133
|
+
それを確認するためにソースコードのどこを見れば良いか、ということが質問の主旨です。
|
134
|
+
|
135
|
+
リストリテラルで生成されるリストがList<E>型のコンストラクタで生成されるとすると、
|
136
|
+
|
137
|
+
|
138
|
+
|
139
|
+
結局List<E>クラスのコンストラクタが、(toast-uz様にお示し頂いた)Iterable.generate()コンストラクタを呼び出しているなら、
|
140
|
+
|
141
|
+
ListIterableのサブクラスが生成されるので、全てつながると思うのですが、
|
142
|
+
|
143
|
+
List<E>クラスのコンストラクタを見ると
|
144
|
+
|
145
|
+
```ここに言語を入力
|
146
|
+
|
147
|
+
external factory List.filled(int length, E fill, {bool growable = false});
|
148
|
+
|
149
|
+
```
|
150
|
+
|
151
|
+
のようにコンストラクタは全てexternal修飾子がついていて、ボディが記述されていないようです。
|
152
|
+
|
153
|
+
externalというのは、メソッド(コンストラクタ)のボディは別の場所で定義されている、ということらしいのですが、
|
154
|
+
|
155
|
+
その場所ってどこなのでしょうか?
|