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以降