回答編集履歴
6
修正
test
CHANGED
@@ -62,7 +62,13 @@
|
|
62
62
|
|
63
63
|
|
64
64
|
|
65
|
+
// Trailing Closuresを使用しない書き方
|
66
|
+
|
67
|
+
closureMethod (num1: 5, closure: { (num) in print(num) })
|
68
|
+
|
69
|
+
|
70
|
+
|
65
|
-
// 引数の最後がクロージャーなのでTrailing Closures
|
71
|
+
// 引数の最後がクロージャーなのでTrailing Closuresを使用した書き方
|
66
72
|
|
67
73
|
closureSample (num1: 5){ (num) in // (_) ワイルドカードによって明示的に値を受けないようにできます。
|
68
74
|
|
5
修正
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
こ
|
5
|
+
この場合は初期化処理のクロージャーの中のという感じになると思います。
|
6
6
|
|
7
7
|
|
8
8
|
|
@@ -54,7 +54,7 @@
|
|
54
54
|
|
55
55
|
|
56
56
|
|
57
|
-
// クロージャーの処理を実行
|
57
|
+
// クロージャーの処理を実行、これを実行すると呼び出した方のブロックの中が呼ばれ、引数が渡されます。
|
58
58
|
|
59
59
|
closure(num: num1 + 1)
|
60
60
|
|
4
修正
test
CHANGED
@@ -34,7 +34,7 @@
|
|
34
34
|
|
35
35
|
|
36
36
|
|
37
|
-
`handler: ((UIAlertAction) -> Void)?)`の部分が`{ (_) in }`の部分に当たりまして、`{ (action) in }`のように`action`に`UIAlertAction`の値が戻ってきます。
|
37
|
+
`handler: ((UIAlertAction) -> Void)?)`の部分が`{ (_) in }`の部分に当たりまして、`{ (action) in }`のように書くと`action`に`UIAlertAction`の値が戻ってきます。
|
38
38
|
|
39
39
|
|
40
40
|
|
3
修正
test
CHANGED
@@ -1,4 +1,16 @@
|
|
1
|
+
> 計算型プロパティの中の
|
2
|
+
|
3
|
+
|
4
|
+
|
5
|
+
こちらは初期化処理のクロージャーの中のという感じになると思います。
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
|
12
|
+
|
1
|
-
この書き方はClosureという書き方になります。
|
13
|
+
`{ (_) in }`このような書き方はClosureという書き方になります。
|
2
14
|
|
3
15
|
詳しくは以下を参照
|
4
16
|
|
@@ -13,6 +25,14 @@
|
|
13
25
|
```
|
14
26
|
|
15
27
|
使用しているメソッドの定義は上記のようになっています。
|
28
|
+
|
29
|
+
アラートのアクションを生成して、アラートのボタンが押された場合に`{ (_) in }`のブロックの中がよばれます。
|
30
|
+
|
31
|
+
※`loginAction.enabled = false`となっているので、押されない前提かとおもいますが・・・
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
|
16
36
|
|
17
37
|
`handler: ((UIAlertAction) -> Void)?)`の部分が`{ (_) in }`の部分に当たりまして、`{ (action) in }`のように`action`に`UIAlertAction`の値が戻ってきます。
|
18
38
|
|
2
修正
test
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
|
15
15
|
使用しているメソッドの定義は上記のようになっています。
|
16
16
|
|
17
|
-
`handler: ((UIAlertAction) -> Void)?)`の部分が`{ (_) in }`の部分に当たりまして、`{ (action) in }`のように`UIAlertAction`の値が戻ってきます。
|
17
|
+
`handler: ((UIAlertAction) -> Void)?)`の部分が`{ (_) in }`の部分に当たりまして、`{ (action) in }`のように`action`に`UIAlertAction`の値が戻ってきます。
|
18
18
|
|
19
19
|
|
20
20
|
|
@@ -28,7 +28,7 @@
|
|
28
28
|
|
29
29
|
```swift
|
30
30
|
|
31
|
-
// 引数
|
31
|
+
// 引数でわたされた値を+1してクロージャーで返すメソッド
|
32
32
|
|
33
33
|
func closureSample(num1 num1 : Int, closure: (num: Int) -> ()) {
|
34
34
|
|
@@ -42,6 +42,8 @@
|
|
42
42
|
|
43
43
|
|
44
44
|
|
45
|
+
// 引数の最後がクロージャーなのでTrailing Closuresが使用できます。
|
46
|
+
|
45
47
|
closureSample (num1: 5){ (num) in // (_) ワイルドカードによって明示的に値を受けないようにできます。
|
46
48
|
|
47
49
|
|
1
修正
test
CHANGED
@@ -19,3 +19,37 @@
|
|
19
19
|
|
20
20
|
|
21
21
|
その値を使用しない場合は`_` (ワイルドカードといいます)を使用して、使わないことを明示しています。
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
★ 簡単なクロージャーの例
|
28
|
+
|
29
|
+
```swift
|
30
|
+
|
31
|
+
// 引数の最後がクロージャーなのでTrailing Closuresが使用できます。
|
32
|
+
|
33
|
+
func closureSample(num1 num1 : Int, closure: (num: Int) -> ()) {
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
// クロージャーの処理を実行
|
38
|
+
|
39
|
+
closure(num: num1 + 1)
|
40
|
+
|
41
|
+
}
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
closureSample (num1: 5){ (num) in // (_) ワイルドカードによって明示的に値を受けないようにできます。
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
//=> 6
|
50
|
+
|
51
|
+
print(num)
|
52
|
+
|
53
|
+
}
|
54
|
+
|
55
|
+
```
|