Elvis演算子
CoddyのKotlinジャーニー「基礎」セクションの一部。レッスン 15/93。
安全呼び出し演算子はクラッシュを防ぐのに便利ですが、null ではなく実際の値が必要な場合もあります。エルビス演算子 ?:を使うと、式が 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
}この演算子の名前は、?:を横から見るとエルヴィスの髪型のように見えることに由来します。さらに重要なのは、妥当なデフォルト値を使って、null 許容型を null 非許容の値に変換するすっきりとした方法を提供することです。
チャレンジ
簡単荷物には、任意の追跡ラベルと任意の配送先があります。スターターコードには、両方の nullable 値が用意されています。追跡ラベルがない場合は ?: を使って "Pending" を選び、配送先がない場合は "Unassigned" を選んでください。選んだラベルを出力し、次に選んだ配送先を別々の行に出力してください。
自分で試してみよう
fun main() {
val trackingLabel: String? = null
val destination: String? = "Harbor"
// 表示する2つの値を選んで出力する。
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Kotlinプレイグラウンド