◾️はじめに
https://dk521123.hatenablog.com/entry/2023/04/25/103533
の続き。 TOMLの記事は、上の記事でまとめようと思ったが 加筆していくと結構膨大になって、 文法もかなり分かっていないことに気がついたので TOMLの文法部分を整理してみた。 特に、TOML のテーブル・インラインテーブルについて 自分の中で混乱していたので、整理できてよかった、、、
目次
【0】公式ドキュメント 1)ツール「TOML to JSON」 【1】仕様 1)大文字と小文字は区別される 2)インデントは無視 3)ファイル名の拡張子「.toml」 【2】コメント 【3】キーと値の組 【4】配列 【5】テーブル 1)テーブル 2)インラインテーブル 3)ドット付きキー 「.」 4)テーブルの配列
【0】公式ドキュメント
* 分からなくなったら、立ち返る、、、
https://toml.io/en/v1.0.0
和訳
https://toml.io/ja/v1.0.0
1)ツール「TOML to JSON」
* 文法チェックに、、、
https://www.convertsimple.com/convert-toml-to-json/
【1】仕様
1)大文字と小文字は区別される
# なので、ブール値は 常に小文字 # (個人的には、PythonのようにTrueってしちゃいそう、、、) bool1 = true bool2 = false
2)インデントは無視
[servers] # 以下のインデントは見やすいさだけでなくても同じ [servers.alpha] ip = "10.0.0.1" dc = "eqdc10"
JSONで書き直すと
https://www.convertsimple.com/convert-toml-to-json/
{ "servers": { "alpha": { "ip": "10.0.0.1", "dc": "eqdc10" } } }
3)ファイル名の拡張子「.toml」
* TOML ファイルには拡張子 .toml を使用する必要がある => 意識したことはなかったが、YAMLなら「.yaml」「.yml」があるが 公式ドキュメントによると、TOMLは一択で「.toml」みたい
【2】コメント
* 「#」するだけ => ここは、YAMLと同じなので問題なし、、、
例
# This is a comment
【3】キーと値の組
* 「key = "value"」で「=」区切る => たまに「:」にしてJSONみたいにしてしまう、、、
例
key = "value"
【4】配列
# 異なるデータ型の値を混在させることができる contributors = [ "Foo Bar <foo@example.com>", # 最後の行末の `,` は有効(ここはJSONとは違う) { name = "Baz Qux", email = "bazqux@example.com", } ]
【5】テーブル
* キーバリュー型(辞書型)を表現する * 別名:ハッシュテーブル、辞書 * なお、「2)インラインテーブル」「3)ドット付きキー 「.」」は 「1)テーブル」の別表現
1)テーブル
[table] key = "value"
JSONで書き直すと
https://www.convertsimple.com/convert-toml-to-json/
{ "table": { "key": "value" } }
2)インラインテーブル
# テーブルを表現するためのよりコンパクトな構文 table = { key1 = "value1", key2 = "value2" }
JSONで書き直すと
https://www.convertsimple.com/convert-toml-to-json/
{ "table": { "key": "value" } }
使用上の注意
https://toml.io/ja/v1.0.0
より抜粋 ~~~~~ インライン テーブルは 1 行で表示されるように設計されています。 インライン テーブル内の最後のキーと値のペアの後には、 終了カンマ (末尾のカンマとも呼ばれる) を使用することはできません。 ~~~~~
3)ドット付きキー 「.」
# ドット付きキーは、テーブルを作成および定義 table.key = "value" # 以下も可能 [table2.key2] ip = "10.0.0.2" dc = "eqdc10"
JSONで書き直すと
https://www.convertsimple.com/convert-toml-to-json/
{ "table": { "key": "value" }, "table2": { "key2": { "ip": "10.0.0.2", "dc": "eqdc10" } } }
4)テーブルの配列
# * 辞書型のリストは「[[ .. ]]」で表現する [[table]] name = "Hammer" age = 23
JSONで書き直すと
https://www.convertsimple.com/convert-toml-to-json/
{ "table": [ { "name": "Hammer", "age": 23 } ] }
関連記事
TOML 〜 入門編 〜
https://dk521123.hatenablog.com/entry/2023/04/25/103533
Python ~ TOML ~
https://dk521123.hatenablog.com/entry/2024/01/27/000110
Scala ~ TOML ~
https://dk521123.hatenablog.com/entry/2023/10/08/232146