コンテンツにスキップ

DUMPYAML

Category: 型取得/変換

書式

DUMPYAML( value [, pretty] )

引数

Parameter Description
value YAML にする値。ハッシュや配列(入れ子を含む)も1つの引数として渡せる
pretty 1 ならブロック形式(字下げで構造を表す、人が読み書きしやすい形)、0 ならフロー形式の1行にする。省略時は 1

戻り値

  • 成功時: YAML の文字列
  • 引数がないとき: 空文字列

解説

値を YAML の文字列にして返す。PARSEYAML の逆の変換になる。

DUMPJSON / DUMPXML と違い、pretty の省略時は整形する(1)。

値の対応

YAYA YAML
ハッシュ マッピング。キーは文字列にする(1 は "1")。並びはハッシュのキーの順
汎用配列 シーケンス
整数 整数。64bit の整数も誤差なく書く
実数 実数。小数点を必ず付ける(1.0、0.1、1.0e+300)。NaN は .nan、無限大は .inf / -.inf
文字列 文字列(下記)
空(VOID) null
  • 整数の 1 / 0 は 1 / 0 になる。true / false にはならない
  • 小数点はロケールによらず常に . になる

文字列は、そのまま書いても読み戻したときに同じ文字列になるものはクォートせずに書き、そうでないものは "..." で囲む。次のようなものは "..." になる。

  • 数値・真偽値・null として読まれるもの("123" "1.5" "true" "null" "~")
  • 他の処理系(YAML 1.1)で数値や真偽値として読まれうるもの("yes" "no" "on" "off" "0x1F" "2001-12-14" "12:30")
  • 空文字列、先頭か末尾が空白のもの、記号(- ? : , [ ] { } # & * ! | > ' " % @ と `)で始まるもの
  • : や # を含むもの、制御文字(タブなど)を含むもの

"..." の中では " \ と制御文字だけをエスケープする(改行は \n)。日本語などの非 ASCII の文字はそのまま書く。

整形の形(pretty が 1)

  • 2つの空白でインデントし、改行は LF にする。最後の行の後にも改行を付ける
  • シーケンスはキーの下に字下げして - で並べる。シーケンスの要素のハッシュ・配列は - の後に続けて書く
  • 空の配列・ハッシュは [] / {} と書く
  • 改行を含む文字列はブロックスカラー(|)にする。末尾に改行が無いものは |-、2つ以上あるものは |+ になる。ただし、最初の行が空白で始まるもの、空白だけの行があるもの、CR などの制御文字を含むものは "..." にする

pretty が 0 のときはフロー形式の1行({a: 1, b: [x, y]})にし、最後に改行を付けない。

PARSEYAML で読み戻すと元の値に戻る(どちらの形でも)。

エラー

状況 警告 GETLASTERROR
引数がない W0008 8

使用例

_h = IHASH()
_h["name"] = "さくら"
_h["tags"] = ("ghost", "shell")
_h["height"] = 158.5

DUMPYAML(_h)
// height: 158.5
// name: さくら
// tags:
//   - ghost
//   - shell

DUMPYAML(_h, 0)
// {height: 158.5, name: さくら, tags: [ghost, shell]}

DUMPYAML(("a", 1))          // "- a" + 改行 + "- 1" + 改行
DUMPYAML("123", 0)          // "123"(数値と区別するためクォートされる)
DUMPYAML(未定義の変数, 0)    // null

互換性

  • YAYA: Tc602-5以降

関連項目