Webエンジニアのメモ帳

技術的な話を中心に書いています。

2023-10-01から1ヶ月間の記事一覧

【Kotlin】拡張関数で自身を参照する方法 (レシーバ付き関数リテラル)

Kotlinには拡張関数という仕組みがあり、既存のクラスにメソッドを追加することが可能です。 例えば以下コードでは、Int型にsum()メソッドを追加しています。 fun Int.sum(num: Int): Int { return this + num } その結果、以下のような記述が可能になります…

【Kotlin Koans 解説】ジェネリック (Generics)

Kotlin KoansでKotlinを勉強したメモをまとめています。 問題 リンクは以下。 https://play.kotlinlang.org/koans/Generics/Generic%20functions/Task.kt 少し簡略化して説明すると、以下のコードが動くように、リストに入った要素を条件によって2つに分ける…

【Room・SQLite】数字の0埋めでFORMATが使えない場合の対処法

SQLiteのFORMAT関数 SQLiteでは、以下のようにFORMAT関数で0埋めを行うことができます。 SELECT FORMAT(1,'D3') # 001と出力される FORMATはRoomでは使えない しかし、Androidの開発で使われるRoomでは、FORMATを使うことはできません。 使おうとすると、以…

【Android】Roomの@Queryアノテーションで正規表現を利用する方法

例えば以下のようなSQLがあるとします。 SELECT * FROM users WHERE name LIKE "A*" このSQLをRoomで動かす方法をいくつか説明します。 アノテーション内で||で文字列を結合する方法 @Queryアノテーション内では、以下のように||を使って文字列を結合させる…

【Kotlin】カスタムゲッター・カスタムセッターについて

カスタムゲッター 例えば、以下のようなRectangleクラスがあるとします。 class Rectangle(val width: Int, val height: Int) { fun area(): Int = this.width * this.height } このクラスはarea()というメソッドを持っており、実行すると以下のようになりま…

【Kotlin】コマンドラインでの実行方法

例えばSample.ktというクラスを実行する方法は以下です。 kotlinc Sample.kt -include-runtime -d Sample.jar kotlin Sample.jar