前回、データに関して宣言、インスタンスの生成、代入とやってみて
結果のところで
Optional("Your Name")という結果が出たところまできました。
そのOptionalについて説明していきます。
前回のコード内に
print(user.name)の横に▲のwarning(警告)がでてますね。
そこに書きているメッセージには
Expression implicitly coerced from 'String?' to Any
(この式は自動で強制的に変えます オプショナルのString型から、Any型に)
って警告で言ってます。
この式ってのは
print(user.name)のことです。
こんな感じにルールの上で勝手にやられるイメージですかね?
String? -----> Any
ここから以下の3つを掘り下げていきましょう
1.String
2.?
3.Any
- From 側 -
1.String
これは文字列という型になります。
var name: String
と宣言するとnameの中に値は何も存在していない状態。
2.?
これはオプショナルという型になります。
var name: String?
と宣言するとnameの中に値はnilが存在する状態。
- To 側 -
3.Any
これはAnyという型になります。
この型は何にでもなれる型とイメージしてください。
これを理解した上で
String? ----> Any
何も存在していない状態の文字列型をnillが存在する状態にして ----> 何にでもなれる型にする
この警告文はnilが存在する状態から何にでもなれる型にすることを警告するのでしょう? この回答は今後お伝えしていきたいと思います。
今回は
nilが存在する状態
nilが存在しない状態がイメージできたら大丈夫です!
第一回限定、無料エンジニア講座を実施予定です!
https://atnd.org/events/84029
https://connpass.com/event/46602/