目次
TOMLとは
TOML(とむる、Tom’s Obvious, Minimal Language)はトム氏の考案した明瞭で最小の言語です。2013年に初版であるver.0.1.0が公開されました。
[フォーマット]
# コメント
[テーブル名]
キー名=値
項目 | 内容 |
---|---|
キー | 設定を「名前=値」の形式で記述します。 キーにはベアキー、引用符付きキー、ドット付きキーがあります。 |
テーブル | キーをテーブルというグループに分けて管理します。 同一のテーブル内に同一のキー名を設けることはできません。 |
コメント | 「#」から行末まではコメントとなります。 |
TOMLの特徴
- 公式サイトで詳細を確認できます。日本語訳もあります。
- ファイルの拡張子は「.toml」です。
- ファイルのエンコードは「UTF-8」です。
- MIMEタイプは 「application/toml」です。
- 改行コードはLFまたはCRLFです。
キーの表記方法
- ベアキー
-
ベアキーの名前には「A~Z、a~z、0~9」の他、アンダースコア「_」とダッシュ「-」のみを使用できます。
key = "value" bare_key = "value" bare-key = "value" 1234 = "value"
- 引用符付きキー
-
引用符「’」または「”」で囲うことで、より多様な名前を付けることができます。
"127.0.0.1" = "value" "character encoding" = "value" 'key' = "value" 'quoted "value"' = "value"
- ドット付きキー
-
ベアキーまたは引用符付きキーをドット「.」で繋いだものです。
physical.color = "orange" physical.shape = "round" site."google.com" = true
上記をJSONで記述すると、下記のようになります。 テーブルを用いるのと同じ効果を得られます。
{ "physical": { "color": "orange", "shape": "round" }, "site": { "google.com": true } }
値の表記方法
- 文字列
-
ダブルクォーテーション「”」で囲むと文字列となります。バックスラッシュ(日本だと「\」)を用いたエスケープシーケンス記法も可能です。(下記参照)
- b:バックスペース(U+0008)
- t:タブ(U+0009)
- n:ラインフィード(U+000A)
- f:フォームフィード(U+000C)
- r:キャリッジリターン(U+000D)
- “:ダブルクォーテーション(U+0022)
- \:バックスラッシュ(U+005C)
- uXXXX:(U+XXXX)
- UXXXXXXXX:(U+XXXXXXXX)
str1 = "I'm a string. \"You can quote me\". Name\tJos\u00E9\nLocation\tSF." str2 = """ Roses are red Violets are blue"""
- 整数
-
- (-263)~(263-1)の範囲の整数値を扱えます。
- 正の数の前にプラス「+」を付けることができます。
- 桁が大きい場合、アンダースコア「_」を入れることができます。
- 0以外の値に対して、先頭に0を入れてはいけません。
- 先頭に「0b」で2進数、「0o」で8進数、「0x」で16進数を表します。
int1 = +99 int2 = -99 int3 = 123_456_789 bin1 = 0b11010110 oct1 = 0o01234567 hex1 = 0xDEADBEEF hex2 = 0xdeadbeef
- 浮動小数点数
-
浮動小数点数は、IEEE 754 binary64 値として実装する必要があります。
- 小数点を使用する場合、その両端に1桁以上の数字が必要です。
- 非数(nan)や無限(inf、-inf)を使用できます。これらは小文字である必要があります。
flt1 = +1.0 flt2 = 3.14159265 flt3 = 5e+22 flt4 = 1e06 flt5 = -2E-2 flt6 = 6.62607015e-34
- 真偽値
-
真を「true」、偽を「false」で表します。trueとfalseは小文字で表します。
bool1 = true
- 日時
-
RFC 3399にしたがったフォーマットで日時を設定できます。
odt1 = 1979-05-27T00:32:00-07:00 odt2 = 1979-05-27T07:32:00 ld1 = 1979-05-27 lt1 = 07:32:00
- 配列
-
値を角括弧「[ … ]」で囲んで表します。
- 各要素はカンマで区切ります。末尾にカンマがあっても構いません。
- 配列内の要素は同じ型である必要はありません。
integers = [1, 2, 3] colors = ["red", "green", "blue",]