見出し画像

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

ファイルとかデータベースの話🤤

Q.
ラッパーオブジェクト?
A.
どうやら中で Java 互換の int[] に変換するのに IntArray じゃないとならないみたい🤔
この形になってからだと * で可変長引数に展開可能になるって話😑
固定長配列に変換しないと可変長引数にできないとか解りにくいけど他の言語でも機能の限られた配列型しか可変長引数にならないとかあるからそういうもんだと覚えるしか無い😞
JSJavaScript でも arguments引数 は Array ではなく Collection という機能が限定された別の配列型オブジェクトなのよね🤔

→ KDoc で改行は( IntelliJ 的に)反応しないけど三重バッククォートで括って markdown ドキュメントにする事で改行を差し込む事は可能だった
→可変長引数をそのまま別の関数に渡すのは簡単だけど関数内で作った配列を渡すのは型によっては少し工夫が要るっぽい

#学習記 #Kotlin
#KDoc #可変長引数

【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 # ヘルプ

----備忘録
loadCsv の解析部分は独立
reflection KClass への修正
万能指定 Class<?> の Kotlin 方式への書換え
DBAccessor.loadTable と DBAccessor.addRecord の record インスタンス生成が java のまま通ってる…?
略値の定数化 ( Java )
DBAccessor.setValuesWithColumn data[i] の oub of index
KDoc の説明改行直したい
DBAccessor.updateDBValueWithColumn 主キー判定は無意味(キー無し DB 対応)
DBAccessor.updateDBValueWithColumn rows → loc
DBAccessor.updateDBValueWithColumn cNameCache 直取りイクナイ
DBAccessor.updateDBValusWithColumnName タイポ


DBAccessor

なかなか終わらない移植🙄
このオブジェクトだけでもまだ2・3回は掛かりそうなのよね😑

まぁとりあえず前回最後に見えてた set からとりかかるぽ🤤

………🤔
これ、 data の個数が少なかったら例外out of index出ちゃうよね…?🙄
元のコードJava版の方も直さないと他の移植で影響が😞
使うのも作った本人だから基本大丈夫だけど人は間違う…🤪

これでヨシ🤤

KDoc 、ほんと改行無くてどうしたものかなって思ってたんだけど「 markdown が使える」というのはずっと認識していたので思い切って三重バッククォートで括ったら通っちゃった🤤
もっと早く教えてよ😭

………🙄
詳細は備忘録に書き出したけど、原本Java版で要修正な項目がやけに多い😞マジカヨ
まぁ考えたらこの機能、最初の以前のJava学習の時に作ったやつだから抜けが多くても已む無しかしらね🙄

………🤔❓❓❓
可変引数へ渡すのはアスタリスク'*'付けるんじゃないのん?🙄

vararg:Int の引数作った後にまた同じ名前で作ろうとすると IntArray とかいうのにしようとするから変換してみたけどこれも違う…😞

IntArray に変換してもそれは配列のままっぽい🙄
こういう解りにくい指定方法独自の文法やめてほしい😞
String とかも有るのかもしれないけど独自のオブジェクトとかどうするのさ🤬

………あ、これプリミティブだからラッパーオブジェクトに変換してる…のかな?🤔


次回は

この学習になってから追加したやつが見えてきた🤤

いいなと思ったら応援しよう!