[過去ログ] Flutterやろうよ!!! (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
810
(3): デフォルトの名無しさん [sage] 2021/01/15(金)21:58 ID:R5qZkkZa(1/3)
前から思ったんだけどさ、collections api使ってると、A is not subtype of Bという
例外が出たりするんだけど
例外の意味は分かるんだけど、何でコンパイル通るのかなという
例えば
List<Hoge> hoge;
hoge = あるコレクション.map();
で、コンパイル通るけど、実行時に例外で
hoge = あるコレクション.map().toList();
にすると例外でない

ようはIterable<E>とList<E>の違いなんだけど、なんでコンパイル通って実行時に例外でるの?
812: デフォルトの名無しさん [sage] 2021/01/15(金)22:35 ID:R5qZkkZa(2/3)
DartPadで実行しても例外でるな
void main() {
 List<String> hoge;
 final hage = [1, 2];
 hoge = hage.map((e) => e.toString());
 print('$hoge');
}
hoge = hage.map((e) => e.toString()).toList();
にすると例外消える
813: デフォルトの名無しさん [sage] 2021/01/15(金)22:38 ID:R5qZkkZa(3/3)
Dartの型システムってどうなってんだこれ
abastact class List<E>はEfficientLengthIterable<E>をimplementsしてて
EfficientLengthIterable<E>はabstract class Iterable<E>をextends
つまり??
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.041s