[Android]Kotlinのエルビス演算子(?:)とは

Kotlinは空っぽ(null)が嫌いなプログラミング言語ですので、クラス(プログラミングを作るためのブロックの単位)は、名前をつけて中身を入れないと使うことが出来ません。

 

 

一方で、クラスの型(ブロックの種類)の後ろに「?」をつけることで、どーしても空っぽ(null)が入る場合も許容されています(「nullable」と言ったりします)。

val message: String? = "こんにちは"

このときのオブジェクト(message)の中身を、

  • 空っぽでなければ設定されたものを使って、
  • 空っぽの時は他の中身(デフォルトの値)を使いたい

場合があるとします。

 

そのときは、普通はこのように書きますが、

textView.text = if (message != null) message else "さようなら"

 

このように簡略化して書くこともできます。

textView.text = message ?: "さようなら"

このときの「?:」を「エルビス演算子(elvis experssion)」といいます。

なぜ「エルビス」と呼ぶのかはよくわかりませんが、Kotlinの公式では以下のような説明になっています。

If the expression to the left of ?: is not null, the elvis operator returns it, otherwise it returns the expression to the right. Note that the right-hand side expression is evaluated only if the left-hand side is null.

(もし式の左辺(エルビス演算子(?:)の左側)が空っぽ(null)でなければ、エルビス演算子は左辺の値(例ではmessage(=こんにちは))を返し、そうでなければ右辺を返す。右辺は左辺が空っぽ(null)の場合でなければ評価されない)

 

val message: String? = "こんにちは"  //どーしても空っぽ(null)が入る場合はクラスの型の後ろに「?」

//AとBは同じ(Bがエルビス演算子)
textView.text = if (message != null) message else "さようなら"   //A
textView.text = message ?: "さようなら"  //B

(詳しくは下の動画で解説していますので、よろしければご覧ください)

アバター

北川 博之(きーぼー)

みんなのプログラミング by Telulu LLC代表 大阪府生まれ。京都大学経済学部経済学科卒業。 2000年より、日本生命保険、ニッセイアセットマネジメント、パトナム・インベストメンツ(米国)で、日本株トレーダー・アナリスト、経営企画、システム開発等の業務に従事。主に日本株の売買執行・投資分析、経営計画の策定、海外投資家向け日本株営業、社内トレーディングシステム及び経理システムの開発等を行う。 2016年、合同会社てるる設立。スマホアプリプログラマーとして「新感覚脳トレアプリ・記憶戦隊オボエルンジャー」「Meisoー1番シンプルなマインドフルネス瞑想アプリ」をはじめとした、メンタルヘルス・知育系アプリを中心に4タイトル・計8本(Android・iOS)をリリース。 2017年、自身のこれまでの社会人経験・プログラミング経験・子育て経験を基に、プログラミングを通じて人々の人生を豊かにして、未来に希望の持てる明るい社会の実現に貢献したいとの想いから、プログラミング完全初心者と挫折経験のある人を支援する「プログラミング挫折撲滅プロジェクト・みんなのプログラミング by Telulu LLC」を設立し、プログラミングサポーター活動と心理カウンセリング活動を開始。これまでに3,000名を超える方のプログラミング挫折撲滅をサポート。

こんな記事も読まれています

みんプロにかける想い

  1. プログラミングはみんなのもの!(プログラミングの醍醐味である「楽しさ」を伝えたい)

  2. トランプ政権2期目に起こるIT業界激震予想(前編:スマホの世界の構造問題に荒療治が行われる可能性)

  3. ぼくが別に言う必要のない挫折の黒歴史をあえてさらけ出している理由(自分の中にある「ブロック」を外すきっかけにしてほしい)

  4. プログラミングは手段の1つに過ぎない(目的は自分のアイデアを形にすること)

  5. トランプ政権2期目に起こるIT業界激震予想(後編:ブロックチェーンによるインターネットの再民主化が行われる可能性)

みんプロ作成アプリ




みんプロ代表の黒歴史


TOP