icon
icon

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

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

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

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

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

 

 

田島悠介

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

大石ゆかり

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

田島悠介

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

大石ゆかり

お願いします!

 

Scalaのoptionとは

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

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

 

Scalaのoptionの使い方

宣言方法

ソースコード

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

解説

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

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

 

[PR] 無料で現役エンジニアから学べる

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週間で習得することが可能です。

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

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学で学習していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、マンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう カウンセラーやエンジニア・デザイナー があなたの相談に真摯に向き合います。

「自分に合っているか診断してほしい」
「漠然としているが話を聞いてみたい」

こんなささいな悩みでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する