icon
icon

Scalaでenum(列挙型)を使う方法【初心者向け】

【プログラミング初心者向け】Scalaでenum(列挙型)を使う方法を解説。概要・実例・種類(case objectとEnumeration)・書き方(文法)などenumに関する情報をわかりやすくまとめました!

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

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

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

 

 

田島悠介

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

大石ゆかり

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

田島悠介

enumの使い方と書き方について詳しく説明していくね!

大石ゆかり

お願いします!

 

Scalaのenumとは

Scalaのenumとは列挙型を意味します。

列挙型とは、列挙型は定数のリストを定義する定数の使い方です。

定数とは、一度設定したら内容を変化させることがない変数を意味します。

変数とは、値を格納する箱のようなものです。

リストとは、複数の値を格納する方法で、配列とも呼ばれます。

 

列挙型を使用する実例

使用する可能性がある文字列が限定されている場合、列挙型を使用します。

例えば、年号です。

明治、大正、昭和、平成という年号は、歴史上のものであり変わりません。これらを、変数に入れてしまうと、値が変化してしまいます。

定数に入れてしまうと、年号分の定数を作成する必要があります。

そこで、列挙型で宣言することで、値が変化しない複数のまとまった変数を定義することができます。

 

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

Scalaのenumの種類

Scala のenumでは、case object と Enumeration の2種類あります。

Enumerationの方がenumと綴が似ていますが、実際にはcase objectがよく使われます。

case objectがよく使われる理由として、Enumerationでは、パターンマッチの記述漏れチェックが自動で実行されないためです。パターンマッチとは、例えば列挙型の値をに特定の値があるか検索することです。

Scalaのmatchを使用して、列挙型の値を検索した場合を例にして説明してみます。

もし、列挙型で定義した値が10個あり、matchで定義した検索条件値が9個しかない場合、case objectであれば、足りない条件値があることを教えてくれます。

Enumerationの場合には特に教えてくれません。

この点が、Scalaで列挙型を使用する際に、Enumerationではなく、case objectを利用する最大の理由です。

 

ScalaのEnumerationの書き方

基本となる書き方

文法

object オブジェクト名 extends Enumeration {
  val 値1,値2,(省略) = Value
}

解説

1行目のオブジェクト名で、Enumerationとして使用する名称を決めます。

extends EnumerationでEnumerationとして使用できるようにしています。

2行目のval 値1,値2,(省略)で、列挙型の値を設定しています。

Valueの部分で、実際に列挙型を指定する際の指定値を設定しています。

大石ゆかり

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

田島悠介

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

大石ゆかり

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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