Scalaでoptionを使う方法【初心者向け】

初心者向けにScalaでoptionを使う方法について解説しています。OptionクラスにはSome(値が入っている)とNone(値が入っていない)のサブクラスがあります。それぞれの例をサンプルコードで確認しましょう。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

今回は、Scalaでoptionを使う方法を解説します。

Scalaについてそもそもよく分からないという方は、Scalaとは何なのか解説した記事をまずご覧ください。

 

なお本記事は、TechAcademyのScalaオンライン講座の内容をもとに作成しています。

 

田島悠介

今回は、Scalaに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

optionを使う方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

Scalaのoptionとは

ScalaのOptionは値が有るかないかを調べることが出来ます。

値がある場合はSomeを表示し、値がない場合はNoneを表示します。

 

Scalaのoptionの使い方

宣言方法

ソースコード

opt : Option[String] = Option("値")

解説

Option(String)型変数optに値を代入しています。

Stringは文字列を意味する型です。

 

[PR]Scalaで挫折しない学習方法を動画で公開中

Scalaのoptionを実際に書いてみよう

Someを表示する場合

ソースコード

object Main extends App {
  val opt : Option[String] = Option("文字列")
  println("Some判定: " + opt)
  val result = opt.get
  println("結果: " + result)
}

表示結果

Some判定 : Some(文字列)
結果 : 文字列

解説

1行目のobject Main extends App {では、ScalaのAppという機能をextend(継承し再利用)してMainという名前のObject(オブジェクト)を宣言しています。

2行目のval opt : Option[String] = Option(“文字列”)では、Option(String)型変数optに文字列を代入しています。

3行目のprintln(“Some判定: ” + opt)では、変数optの内容を表示しています。

表示結果は値があるため、Some(文字列)と表示されます。Someの判定をしているので、Some判定:という文字列を行頭に表示するようにしています。

4行目のval result = opt.getでは、変数optの値を取得し(get)変数resultに代入しています。

5行目のprintln(“結果: ” + result)では、変数resultをprintlnを使用して、値の結果を表示しています。

表示結果は、「結果 : 文字列」となります。

 

Noneを表示する場合

ソースコード

object Main extends App {
  val opt : Option[String] = Option(null)
  println("Some判定: " + opt)
  val result = opt.get
  println("結果: " + result)
}

表示結果

Runtime error #stdin #stdout #stderr 0.37s 2181632KB
Some判定 : None

解説

Some判定と異なるのは2行目の最後の部分で、Option(null)のようにnullを代入している点です。

nullが代入されたため、3行目のSome判定ではNoneが表示されています。そして、実行時エラーが表示されています。

 

今回は、Scalaでoptionを使う方法を解説しました。

 

この記事を監修してくれた方

中本賢吾(なかもとけんご)
アジマッチ有限会社 代表取締役社長

開発実績:PHPフレームワークを利用した会員制SNS・ネットショップ構築、AWSや専用サーバー下でLinuxを使用したセキュアな環境構築、人工知能を利用したシステム開発、店舗検索スマホアプリ開発など。

その他にも地域の職業プログラマー育成活動を行い、2018年には小学生がUnityで開発したオリジナルAndroidアプリをGooglePlayでリリース。ゲームで遊ぶより作ろうぜ!を合言葉に、小学生でも起業できる技術力を育成可能で有ることを証明し続けている。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

また、オンラインのプログラミングスクールTechAcademyでは、Scalaオンライン講座を開催しています。

Scalaを使ってWebアプリケーションを開発することができます。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間で習得することが可能です。

また、現役エンジニアから学べる無料のプログラミング体験会も実施しているので、ぜひ参加してみてください。