回答編集履歴
2
不要な文字の削除
answer
CHANGED
@@ -53,7 +53,7 @@
|
|
53
53
|
```
|
54
54
|
|
55
55
|
Objective-Cなどでも、関数やメソッドが処理を失敗したときに niを返すといったことはよくありました。しかし、Swiftが nilを返された場合、それと決定的に異なっているのは、Optionalは値を使う前に nilかどうかをチェックしなければならない点です。
|
56
|
-
Objective-Cでは、nilを返すメソッドについて、失敗した際の処理を無視したとしても問題なくコンパイルできてしまうことがよくあります。そのため、意図しないエラーの処理をし忘れたことによる
|
56
|
+
Objective-Cでは、nilを返すメソッドについて、失敗した際の処理を無視したとしても問題なくコンパイルできてしまうことがよくあります。そのため、意図しないエラーの処理をし忘れたことによるバグを生みだしてきました。
|
57
57
|
Swiftでは、Optionalを導入することで、コードを書くものにエラー処理を強制し、そうしたバグを未然に防ぐことができるようになっているのです。
|
58
58
|
|
59
59
|
以上、ご参考いただければ幸いです。
|
1
誤字の訂正
answer
CHANGED
@@ -18,7 +18,7 @@
|
|
18
18
|
よくあるのは、String型の変数には nilを代入できないが、String?にすれば nilを代入できるという理解のしかたです。これは、まちがってはいませんが正確とはいえません。
|
19
19
|
ここでは話が複雑になる可能性があるのでくわしく書きませんが、Swiftの Optionalは、ひとつの(特別な)型であると理解することが Optionalを使ううえで将来的に意味をもってきます。
|
20
20
|
|
21
|
-
通常、String型として宣言された変数は文字列のほかに値を保持できませんが、String?型として宣言された変数は文字列のほかに nilを値とすることができます。つまり、nilを値とすることで、値をもたない状態を
|
21
|
+
通常、String型として宣言された変数は文字列のほかに値を保持できませんが、String?型として宣言された変数は文字列のほかに nilを値とすることができます。つまり、nilを値とすることで、値をもたない状態を表すことができるのです。
|
22
22
|
|
23
23
|
```lang-Swift
|
24
24
|
var name: String = “Rola”
|
@@ -28,7 +28,7 @@
|
|
28
28
|
```
|
29
29
|
|
30
30
|
上記のように型名に接尾辞 ?をつけて、nilを代入することができるようにすることを、Optiolan型でラップするといいます。
|
31
|
-
例では、String型で説明しましたが、ほかの型でも Optional型でラップすることによって nilが代入可能となります。たとえば、Int型もInt?
|
31
|
+
例では、String型で説明しましたが、ほかの型でも Optional型でラップすることによって nilが代入可能となります。たとえば、Int型もInt?として数値のほかに nilを代入することができます。
|
32
32
|
|
33
33
|
じっさいに Optionalを使う場面として、検索関数を例にとってみてみましょう。
|
34
34
|
配列からあたえられた文字列を検索し、存在すればそのインデックスを、存在しなければ nilを返す関数です。
|