回答編集履歴
3
補足
test
CHANGED
@@ -108,7 +108,7 @@
|
|
108
108
|
|
109
109
|
|
110
110
|
|
111
|
-
|
111
|
+
おまけですが、4のような`a..b().c()`を使いたいケースを考えてみました...
|
112
112
|
|
113
113
|
|
114
114
|
|
@@ -118,4 +118,6 @@
|
|
118
118
|
|
119
119
|
print(_list..first.shuffle());
|
120
120
|
|
121
|
+
print((_list..shuffle()..first.shuffle()).first.first);
|
122
|
+
|
121
123
|
```
|
2
余談を追加
test
CHANGED
@@ -101,3 +101,21 @@
|
|
101
101
|
|
102
102
|
|
103
103
|
> Basically, a..b().c() is the same as (t){t.b().c(); return t;}(a)
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
+
----
|
108
|
+
|
109
|
+
|
110
|
+
|
111
|
+
余談ですが、4のような`a..b().c()`を使いたいケースを考えてみました...
|
112
|
+
|
113
|
+
|
114
|
+
|
115
|
+
```
|
116
|
+
|
117
|
+
var _list = <List<String>>[['one', 'two', 'three'],['four', 'five', 'six']];
|
118
|
+
|
119
|
+
print(_list..first.shuffle());
|
120
|
+
|
121
|
+
```
|
1
補足
test
CHANGED
@@ -1,10 +1,10 @@
|
|
1
|
-
|
1
|
+
3の`_list.shuffle().first`は単純に`shuffle()`の戻り値が`void`のため、エラーになります。
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
|
5
|
+
4の`_list..shuffle().first`は`shuffle().first`がカスケードの範囲として認識されます。なので、`shuffle()`の戻り値`void`に`first`しており、エラーになります。
|
6
6
|
|
7
|
-
一方、
|
7
|
+
一方、2の`(_list..shuffle()).first`では`shuffle()`のみがカスケードの範囲として認識されるので、`first`は`_list`に対して実行されます。
|
8
8
|
|
9
9
|
|
10
10
|
|
@@ -38,7 +38,7 @@
|
|
38
38
|
|
39
39
|
|
40
40
|
|
41
|
-
|
41
|
+
2の`print((_list..shuffle()).first);`は以下のように置き換えられる
|
42
42
|
|
43
43
|
```
|
44
44
|
|
@@ -64,7 +64,7 @@
|
|
64
64
|
|
65
65
|
|
66
66
|
|
67
|
-
|
67
|
+
4の`print(_list..shuffle().first);`は以下のように置き換えられる
|
68
68
|
|
69
69
|
```
|
70
70
|
|