見出し画像

【Console Application】ファイルとデータベース 308【学習記】

今回の概略

enum 、気になって調べたけど基本文法の時にオモチャにしてた🙄
問題ないなってなって短時間しか触らなかったから記憶に薄かった物と思われ…😞

#学習記 #Swift
#enum #配列

【Console Application】ファイルとデータベース【学習記】
仕様
https://note.com/sayka/n/nb8a67fa90a64?magazine_key=m7bb64c6a359f#br1mB

仕様
レコード
・レベル
 1-12
・難易度
 b,n,h,a,l
・曲名
・ランプ
 -,x,a,e,c,h,e,f

オプションスイッチ
-u file.csv # 更新(略値)
 ファイル名だけ指定した場合更新処理と見做す
-d file.csv # 削除
-p # csv 出力(略値)
 何も指定せずに起動した場合出力処理と見做す
-v # バージョン
-h # ヘルプ

----備忘録
parseCsv の空行問題


前回の粗筋

csv → Record 変換を治したらそのまま完了する等🤤
やはり完成品を移植だと理論は実証済になるから円滑だなって思うけど言語毎の書き換えでの不具合が多すぎる😞



準備

さて、ようやっと Swift だけどまずは準備から😑

いつものプロジェクトフォルダ作ってからの git 初期化🤤
Kotrin の時もそうだったけど今回は Xcode なので前回の OCObjective-C での git 設定を流用🤪同じだしヨシ!

identifier はハイフン…業界はそういう通達でも有るのかしら?

………

しまった git はプロジェクト作ってからだった😫
replace なので置き換わっちゃう😑
Windows だと上書きとかやってくれるんだけど MacOS の基本は置換🙄
ファイルコピーも、同名フォルダが有ると中身を上書きじゃなくて置換😞

気を取り直して…というか初手、 `git init` 掛け忘れてるし…結果的に良かったのかな…🙄

ガワの作成🤤
折角言語的にインスタンス作らなくても実行できるし main 関数要らないのにワザワザ両方用意するこの仕草…😑
とりあえずこの状態でコミット終了🤤


調査

今回は いきなり取り掛からないでちょっとだけ調べておく事にするお😑
何をって?それは勿論

_人人人人人人人_
> enum class <
 ̄Y^Y^Y^Y^Y^ ̄

OC ではエラい目に遭ったので OC の資産が使える事を標榜している Swift の列挙についても似た傾向がある可能性が強いと思うワケよ😑
先に判ってれば Java 式で通せるのか OC 式になるのかで話が早くなるお🤤


Swift の列挙

Swiftの列挙型(enum)おさらい
https://qiita.com/hachinobu/items/392c96820588d1c03b0c

enum Signal: Int {
    case blue = 1
    case yellow = 2
    case red = 3
}

enum Weather: String {
    case sunny = "晴れ"
    case cloudy = "曇り"
    case rain = "雨"
    case snow = "雪"
}

let sunnyWeather: Weather = .sunny
sunnyWeather.rawValue //晴れ

//返り値はSignal?
let signalYellow: Signal? = Signal(rawValue: 2)
signalYellow?.rawValue //2

//Signalには4に該当する要素が存在しないのでnilが返る
let signalGreen: Signal? = Signal(rawValue: 4)
signalGreen?.rawValue //nil

もうこの情報だけで Java 式可能🤤
しかも手で総当りせずに値から列挙に変換可能…これ開発に自分みたいな使い方文字列から列挙に変換する人結構居たのかな🤔

【Console Application】基本文法 17【学習記】
https://note.com/sayka/n/n89df80daeec2

以前 enum で散々遊んでたわ…😞ワスレテル


配列の型

ガワの main の args が `[String]` になっているので配列は型指定なのかな?🤔
でもこの型指定…なんか基本文法学習の時に「万能型の配列」について調べた気がするんだけど…😑

【Console Application】基本文法 4【学習記】
https://note.com/sayka/n/n7bc5d07d7cc6?magazine_key=m7bb64c6a359f

あった🤤
今回は NSArray みたいな「型が全部 Object なんだけど…」を解決できれば良いからそういうのが欲しい時は多分 `[NSObject]` みたいな書き方すればプリミティブ弾いた配列になる…かな?🤔

とりあえず Swift の配列は型を固定できる様なので OC みたいな型固定配列オブジェクトを作らなくて良いしそれに付随するブラケットアクセス処理も調べなくて良いぽ🤤有るだろうけど

よし、作る前の OC での苦労による不安はこれで払拭かな?😑


次回は

また共通ライブラリ移植から始まる…🙄

この記事が気に入ったらサポートをしてみませんか?