【Console Application】ファイルとデータベース 163【学習記】
ファイルとかデータベースの話🤤
→今回内容的には最初に移植したライブラリのデバグ準備
#学習記 #Kotlin #typealias #内部クラス #inner
の前に
言語的な違いにより Kotlin が Java よりすっきりしたコードとは言え動作試験は要る気がした🤤
IntelliJ がエラーで教えてくれるとは言え、理論的不具合までは教えてくれないからやっといた方が良いよねっていう🤔
………あれ? typealias ってこういう使い方じゃなかったっけ?🙄
………
軽く文献をググってみたけどそんなおかしな使い方ではないみたいなんだけどなんか拒否られる…😞
過去の学習記で書いた記憶が有ったので検索したらヒット☺️
どうやらクラスの名前を略的に使いたい用途では良くないっぽい🙄
static クラスなら構わないけどインスタンス前提になってるクラスで typealias は余り都合が良くないみたい😞
過去の学習記と同じく、 jsx と同じ手法で行くぽ🤤
🙄🙄🙄
………
どうやらこの場合
Console.AnalyzeArgs()
Console().AnalyzeArgs()
という違いが存在していて現状の Console クラスの書き方だと前者の書き方をしないと通らないみたい😞
その割には typealias 通らないな!🤬
で、↑の内部変数化の方だと CON は Console() なので inner が付いてない AnalyzeArgs は「そんな内部クラス知らん」となるっぽい…🙄
inner 付けると Console.AnalyzeArgs() ができなくなるし両対応って無いのかな…🤔
想定以上の事は書いてない…😞
………🤔
こうやって Java と static の話を出してくれるのは有り難い🤤
理論的にどうとか以前に中身は Java なのよねそういえば🤪
StdlibKT はそもそもただのライブラリでそれ自体のインスタンスには大きな意味を持たないので inner は別に要らないかなこれは🤔
念の為 null 許容で作ったけど最初から main の args の型を良く見ればよかった…🤪
null チェック要らなくなるっぽい🤔
? とか !! が外れて null チェックが消える…🤤
………
これ、 args が String? だったから null 非許容の a に一旦入れるって処理だったんだけど args に戻せるよねこれ?🤔
args に戻して平和に🤤
これ `if(validOpt(args[i])){this.options}else{this.arguments} = args[i]` みたいにして代入する変数を if で選ぶとかできたらいいのになって思った🤔
………
流石に左辺の if は無理ぽだった🤪
これが JS なら `this[validOpt(args[i])?"options":"arguments"] = args[i]` なんだけど…🙄
次回は
動作試験のコード組むぽ🤤
準備だけで終わっちゃった…やっぱり言語が違うと大きく勝手が変わる🙄
この記事が気に入ったらサポートをしてみませんか?