Menu
Coddy logo textTech

Elvis演算子

CoddyのKotlinジャーニー「基礎」セクションの一部。レッスン 15/93。

安全呼び出し演算子はクラッシュを回避するのに便利ですが、null の代わりに実際の値が必要な場合もあります。Elvis 演算子 ?:を使うと、式が null の場合にデフォルト値を指定できます。

構文は簡単です。null 許容式の後に ?: を置き、その後にフォールバック値を続けます。

fun main() {
    val name: String? = null
    val displayName = name ?: "Guest"
    println(displayName)  // 出力: Guest
}

左辺が null でない場合は、その値が使用されます。null の場合は、右辺が結果になります。これは安全呼び出しと完全に連携します。

fun main() {
    val text: String? = null
    val length = text?.length ?: 0
    println(length)  // 出力: 0
    
    val greeting: String? = "Hello"
    val greetingLength = greeting?.length ?: 0
    println(greetingLength)  // 出力: 5
}

この演算子は、?:を横から見るとエルビスの髪のように見えることから、その名前が付いています。さらに重要なのは、妥当なデフォルト値を使って、nullable型をnull非許容値に変換する簡潔な方法を提供することです。

challenge icon

チャレンジ

簡単

荷物には、任意の追跡ラベルと任意の宛先があります。スターターコードでは、両方が null 許容値として提供されています。追跡ラベルがない場合は ?: を使って "Pending" を選び、宛先がない場合は "Unassigned" を選んでください。選択したラベルを出力し、続けて選択した宛先を別々の行に出力してください。

自分で試してみよう

fun main() {
    val trackingLabel: String? = null
    val destination: String? = "Harbor"
    // 2つの表示値を選択して出力する。
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン

自分で練習してみよう: Kotlinプレイグラウンド