見出し画像

【Console Application】基本文法 26【学習記】

制御構造if,switch,tryとか特殊な演算三項演算子,ビット,論理,算術関数とかそういう手合の話🤤

Q.
static じゃなくていいの?
A.
ガベコレメモリ自動開放のアレに甘えっきりも良くはないけどコンパイル時にスタック確保staticされているのか実行時に後から確保heapの差しかないのでアプリ配布の観点で言えば動的の方がファイルサイズ小さい場合が多いのでは?🤔

→ Kotlin の null 結合演算子は ?:
 →エルビス演算子と呼ばれるらしい
 →代わりに三項演算子が無い
 → Swift とかの ?? は三項演算子と混同するので採用されたと思われる
→ Any だと null 許容できないので本当に何でも突っ込みたいなら Any?

#学習記 #Kotlin
#Any #エルビス演算子

基準のコードはこちら

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


【 Kotlin 】変数種別判定クラス

そんじゃ作ったやつを組み込んでみようかな🤤

画像1

また Unresolved が始まった😞
static アクセスできないのかな?

Kotlinにstaticが無いのなんで?(Why doesn't Kotlin have static members inside a class?)
https://yyyank.blogspot.com/2017/03/kotlinstaticwhy-doesnt-kotlin-have.html

static メンバが無い…だって!?😳本気か?
いやまぁ、無いなら無いなりにやりようがあるけど🤤

画像2

単に typealias 使わないでインスタンスを作ってしまえば良いのよー🤪
C++ でこれやるとドット演算子じゃなくアロー演算子使うハメになって地味にめんどくさい😞ややこしいし移植しにくい
でも Kotlin はそもそもアロー演算子はラムダ関連に割り当てられてるっぽいしクラスは全部ドットアクセス🤤単純明快

画像3

む? `h[k]` は Any? だぞって言われてる…🙄
ははぁ、以前 Any == null は必ず false になるってのはこれのせいか🤔

画像4

単に引数の型に ? を追加して when に null の行を足すだけ🤤
when の自由度の高さが凄い🤪

画像5

画像6


次回は

各言語での三項演算子や null チェックを調べようかな🤤
Kotlin の null チェックは ?: だったから三項演算子は?ってそのまま引いたら無いらしくてちょっとどうするのよ🙄って思った。
try や テンプレート文字列中にしれっと入れて実行してるけど掌握しておく必要は有るよね🤤

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