解説
「列挙型」は、多くのプログラミング言語で見られる仕様です。関連のある定数を、1つのグループにしたい時に使います。
プログラミングに直接数値などを書くのと比べて、分かりやすい名前付きの値として記述できて値を固定できるため、バグを減らすのに役立ちます。
列挙型は、プログラミング言語によって仕様が異なります。整数だけしか設定できないものもあればテキストを設定できるものもあります。列挙型を使う時は、その言語の仕様を確かめてから使うとよいです。
サンプル
「列挙型」のサンプルです。TypeScriptのプログラムです。※ サーバー上で実行する必要があります。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>「列挙型」のサンプル</title>
<style>
body { font-size: 2em; line-height: 150%; }
</style>
</head>
<body>
<h2>コード</h2>
<pre id="code-ts"></pre>
<hr>
<h2>実行結果</h2>
<pre id="output"></pre>
<script type="TypeScript" id="ts">
print("列挙型を定義して利用1")
enum Season {
Spring,
Summer,
Autumn,
Winter
}
print(`Season.Spring: ${Season.Spring}`);
print(`Season.Summer: ${Season.Summer}`);
print(`Season.Autumn: ${Season.Autumn}`);
print(`Season.Winter: ${Season.Winter}`);
print("--")
print("列挙型を定義して利用2")
enum Code {
OK = 200,
BadRequest = 400,
NotFound = 404
}
print(`Code.OK: ${Code.OK}`);
print(`Code.BadRequest: ${Code.BadRequest}`);
print(`Code.NotFound: ${Code.NotFound}`);
</script>
<script src="https://cdn.jsdelivr.net/npm/typescript@5.1.6/lib/typescript.js"></script>
<script src="https://cdn.jsdelivr.net/npm/esbuild-wasm@0.19.12/lib/browser.min.js"></script>
<script type="module">
import { init } from './ts_check.js';
init('https://cdn.jsdelivr.net/npm/esbuild-wasm@0.19.12/esbuild.wasm')
</script>
</body>
</html>
コード
print("列挙型を定義して利用1")
enum Season {
Spring,
Summer,
Autumn,
Winter
}
print(`Season.Spring: ${Season.Spring}`);
print(`Season.Summer: ${Season.Summer}`);
print(`Season.Autumn: ${Season.Autumn}`);
print(`Season.Winter: ${Season.Winter}`);
print("--")
print("列挙型を定義して利用2")
enum Code {
OK = 200,
BadRequest = 400,
NotFound = 404
}
print(`Code.OK: ${Code.OK}`);
print(`Code.BadRequest: ${Code.BadRequest}`);
print(`Code.NotFound: ${Code.NotFound}`);
実行結果
列挙型を定義して利用1
Season.Spring: 0
Season.Summer: 1
Season.Autumn: 2
Season.Winter: 3
--
列挙型を定義して利用2
Code.OK: 200
Code.BadRequest: 400
Code.NotFound: 404
フィードバックお待ちしております!
ご感想、解説してほしい用語、解説内容のアドバイスなどございましたら、FacebookやX(旧Twitter)などでお気軽に編集部までお寄せください。よろしくお願いいたします。
