Kotlinで変換テーブル

開発をしていると文字列の変換などを行うUtilクラスが欲しい場面が良くある。ある文字から別の文字への変換だったり、APIから返ってきたエラーコードをアプリで用意したコードに変換する場合など。こういった場合に変換前と変換後の組み合わせのテーブルを用意した上で、コンバートさせるfunctionを用意する。

トップレベル関数とトップレベルプロパティを使用

Kotlinはstaticメソッドがなくトップレベル関数が推奨されているのでクラスを用意せずに書いてみると以下のような感じ。定数はトップレベルプロパティ(コンパイル時定数)として定義する。

// Top level property
val TABLE = mapOf(
    "API-E0001" to "BFF-E001",
    "API-E1001" to "BFF-E002",
    "API-E2001" to "BFF-E003"
)

// Top level property 定数
const val UNKNOWN_CODE = "BFF-E999"

// Top level function
fun convertCode(before: String): String {
    if (TABLE.containsKey(before)) {
        return TABLE.get(key = before) ?: UNKNOWN_CODE
    }
    return UNKNOWN_CODE
}

確認

fun main() {
    println(convertCode("API-E0001"))
    println(convertCode("API-E1001"))
    println(convertCode("API-E2001"))
    println(convertCode("API-E9999"))
    println(convertCode(""))
}
BFF-E001
BFF-E002
BFF-E003
BFF-E999
BFF-E999

参考

関数のスコープ

コンパイル時定数

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

ABOUT US
little
15年以上プログラマーをしているエンジニアです。Kotlin, Java, Python, C++を使用したServerSideの開発に携わってきました。とりあえずやってみるスタイルで記事を更新していきます。