swiftをやっていると上のような引数の宣言を見たことがあると思います。 他の言語ではあんまり見ない仕様なので、私自身困惑をしました。 この解説をしていきたいと思います。 swiftだと、データを用いる際「オプショナル」という情報を持たすことができます。 オプショナルとは ・"変数にnul(null)が入っているかもしれないよ?" ・"予想しているデータ型と違うかもよ?" と言った情報のことです。 ?(クエスチョンマーク)の意味 では実際にどのようなものなのかコードを見てみようと思います。 var strA:String? strA = nil //問題なく実行できます var strB:String strB = nil //エラーが出る つまり、?をつけていないと「絶対にnil(null)は入れたらダメだからね」という意味になります。 反対に、?をつけていると「nil入っているかもしれ
![【swift】変数によく付いている「!」や「?」(ビックリマーク・クエスチョンマーク)の説明 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/649596a7757c62b2171d3f04f8a6a319ae1dc8f9/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9JUUzJTgwJTkwc3dpZnQlRTMlODAlOTElRTUlQTQlODklRTYlOTUlQjAlRTMlODElQUIlRTMlODIlODglRTMlODElOEYlRTQlQkIlOTglRTMlODElODQlRTMlODElQTYlRTMlODElODQlRTMlODIlOEIlRTMlODAlOEMlRUYlQkMlODElRTMlODAlOEQlRTMlODIlODQlRTMlODAlOEMlRUYlQkMlOUYlRTMlODAlOEQlRUYlQkMlODglRTMlODMlOTMlRTMlODMlODMlRTMlODIlQUYlRTMlODMlQUElRTMlODMlOUUlRTMlODMlQkMlRTMlODIlQUYlRTMlODMlQkIlRTMlODIlQUYlRTMlODIlQTglRTMlODIlQjklRTMlODMlODElRTMlODMlQTclRTMlODMlQjMlRTMlODMlOUUlRTMlODMlQkMlRTMlODIlQUYlRUYlQkMlODklRTMlODElQUUlRTglQUElQUMlRTYlOTglOEUmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZ0eHQtY2xpcD1lbGxpcHNpcyZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPThkMjYzMzhhZDg4ZGZkZjc0ODZmZTY4MmZiMmM0ODQz%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwb2dfb21vY2hpJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz1kZDdkODc3NDEzMmQwYTYzOTRjZWI3ZWM1YzYzOTI2NQ%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3Dc749241d215864eda5e763bbbef3521d)