前回、データに関して宣言、インスタンスの生成、代入とやってみて

結果のところで

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/