teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

誤字の修正

2020/10/21 02:53

投稿

TsukubaDepot
TsukubaDepot

スコア5086

answer CHANGED
@@ -9,7 +9,7 @@
9
9
 
10
10
  これだと、`Converting non-escaping value to 'Any' may allow it to escape` というエラーが出ます。
11
11
 
12
- 引数ラベルの後に `@escaping` というキーワードをいれれば、このエラーを回避することができますが、それだと一時的な回避過ぎず、質問者さんへ本質的な回答となっていないように思えました。
12
+ 引数ラベルの後に `@escaping` というキーワードをいれれば、このエラーを回避することができますが、それだと一時的な回避過ぎず、質問者さんへ本質的な回答となっていないように思えました。
13
13
 
14
14
  クロージャは離脱していないはずなのに、なぜ `@escaping` を付けなければならないのか(実際に`print()`の中でどのような処理が行われているのか知る方法はないので、「離脱しない」と明言できませんが)。
15
15
 

1

リファレンスを追記

2020/10/21 02:53

投稿

TsukubaDepot
TsukubaDepot

スコア5086

answer CHANGED
@@ -27,6 +27,9 @@
27
27
  operation()
28
28
  }
29
29
  ```
30
+ [- withoutActuallyEscaping(_:do:)
31
+ Allows a nonescaping closure to temporarily be used as if it were allowed to escape.
32
+ ](https://developer.apple.com/documentation/swift/2827967-withoutactuallyescaping)
30
33
 
31
34
  こちらの書き方だと、離脱しないクロージャを、離脱するクロージャとして一時的に扱うことを明示できるため、コンパイラがエラーを出すこともありません。
32
35