はじめに
こんにちは、へっぽこ開発者のもちです。
前回同様有識者からすれば当たり前なことしか書かない記事になるかと思います。
ただ、だからこそアプリ開発初心者や私と同じでMac初心者の方と目線の合った記事の作成ができると考えておりますので、今回も恥と外聞を捨てて初心者丸出しで頑張っていこうと思います!
(つよつよ有識者からのナレッジ共有も大歓迎です!!)
前回の記事はこちら
Swift初学者の気になるあれこれ ~1限目~
1.環境
マシン:Mac mini
チップ:Apple M4
メモリ:16GB
ストレージ:256GB
キーボード:logicool MX KEYS
マウス:Apple Magic Mouse
2.アプリ開発中に気になったところ
前提として一部を除き開発環境の構築、アプリ開発はUdemyを参考にしております。
2−1.配列について
配列自体はもちろん知ってます。
書き方もjsやpythonと基本的には同じでした。
// 配列の宣言
var sports = ["サッカー", "テニス", "バスケ"]
// 要素の追加
sports.append("卓球")
// 空の配列の宣言
var emptyArray = [String]()
要素の追加はappend()以外にもinsert(要素, at:場所)でもできるようですね、調べれば他にもやり方はありそうですがそれはアプリ開発時に必要に応じて調べていきましょう。
気になったのは空の配列の宣言です。
jsやpythonではemptyArray = []でいけたはずなので違和感でした。
これもnilの扱いと似たような匂いのする話な気がしますね。
Swiftが静的型付け、jsやpythonが動的型付けである違いが関係していそうです。
動的型付けと静的型付けについて気になる方はこちらをご覧ください。
https://qiita.com/toryuneko/items/c023031b61886cae2a99
2−2.辞書型について
辞書型も基本的にはjsやpythonと変わりません。
// 辞書の宣言
var occupations = [
"ヒロシ": "経営者"
, "タツヒロ": "詩人"
, "ヨシノブ": "数学者"
]
print(occupations["タツヒロ"]!)
// 要素の追加
occupations["ノブサダ"] = "哲学者"
print(occupations)
// 空の辞書の宣言
var emptyDictionary = [String: Int]()
print(emptyDictionary)
>宣言で気になるのは[]を使用しているところですね。
jsやpythonでは{}を使用して宣言をするため、へっぽこ開発者こともちは
「あれ配列はどっちで、辞書はどっちだっけ???」
と3回に1回はなっていたので、これは助かります。
困ったら [] で囲えばいいもんね
そして、辞書からデータを抽出するときにも気をつけることがあります。
それは強制アンラップです。
辞書型はデフォルトでオプショナル型になっているそうです。
つまり、値を取得する際にアンラップしてあげる必要があります。
Udemyでは辞書の宣言時に要素を用意しているため強制アンラップしていますが、空の辞書を用意して処理最中に要素を追加していく、空のまま処理が終わる可能性があるような作りをした場合はオプショナルバインディングをしてあげる必要がありそうですね。
ちなみに配列全体をprintで参照するときなどはアンラップは必要なさそうです。
>空の辞書を宣言するのはまた違和感がありますね。
jsやpythonならemptyDictionary = {}でいいはず
ところがSwiftではemptyDictionary = [キーの型: バリューの型]()となります。
また、この空の辞書をprintでコンソールに表示してみると
[:]といった表示になる。
3.まとめ
さて、こんなところで今回は終わりにしたいと思います。
今日はちょっと仕事終わりで疲れているので、内容が薄い&駄文で申し訳ないです。
ちょっとでもどなたかの何かの一助になれば幸いです。
あー、早くアプリ開発したい。
ではまた次の投稿でお会いしましょう。
ばいばい!