前提・実現したいこと
エラーメッセージはprint文のコメントを外した状態です
###ここに質問の内容を詳しく書いてください。
現在、Flutter(dart)を勉強しておりますが、dartの動きがよく分からなかったので質問させてください。
2みたいソースコードがサンプルに記載されており、1の簡略が2になるのだろうと想像しました。
その際に3,4でも可能では思い、確認した所エラーになりました。
shuffle()の戻り値がvoidだからエラーになるのかなとエラーメッセージから想像したのですが
2が大丈夫で3,4がエラーになる理由がよくわかりませんでした。
お手数ではございますが、御教唆お願いいたします。
発生している問題・エラーメッセージ
lib/test.dart: Warning: Interpreting this as package URI, 'package:flutter_tutorial_layout/test.dart'.
lib/test.dart:14:25: Error: This expression has type 'void' and can't be used.
print((_list.shuffle()).first);
^
lib/test.dart:14:27: Error: The getter 'first' isn't defined for the class 'void'.
Try correcting the name to the name of an existing getter, or defining a getter or field named 'first'.
print((_list.shuffle()).first);
^^^^^
lib/test.dart:18:16: Error: This expression has type 'void' and can't be used.
print(_list..shuffle().first);
^
lib/test.dart:18:26: Error: The getter 'first' isn't defined for the class 'void'.
Try correcting the name to the name of an existing getter, or defining a getter or field named 'first'.
print(_list..shuffle().first);
該当のソースコード
dart
void main() {
var _list = <String>['one', 'two', 'three'];
// 1. 簡略化する前
_list.shuffle();
print(_list.first);
// 2. 簡略化後
print((_list..shuffle()).first);
// 3. エラー1(.. -> .)
// shuffle()の戻り値がvoidの為、エラーになるのだと思うのですが
// ..(カスケード)だとvoidではなく_listとして認識してくれるのでしょうか?
// print((_list.shuffle()).first);
// 4. エラー2(_list..shuffle()を()から外した)
// こちらも同様に()を外すと_listではなくvoidとなるのでしょうか?
// print(_list..shuffle().first);
}
ここにより詳細な情報を記載してください。
dart version 2.7.0

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/16 02:21
2020/02/16 02:33
2020/02/16 02:44