ไวยากรณ์สำหรับพจนานุกรมว่างใน YAML


97

ฉันจะแสดงพจนานุกรมว่างเปล่าใน YAML ได้อย่างไร คือมันควรจะมีความหมายเทียบเท่ากับที่ว่างเปล่า {}JSON

คำตอบ:


174

คำตอบสั้น ๆ : ใช้ {}

มีสองวิธีในการแสดงการแมป (พจนานุกรม) ใน yaml การแมปโฟลว์และการแมปบล็อก :

block_mapping:
    name:  foo
    id:    bar
flow_mapping: { name: foo, id: bar }
empty_flow_mapping: {}

ดังนั้นรูปแบบการแม็ปโฟลว์จึงเหมาะสำหรับการแสดงการแม็พที่ว่างเปล่า


21
รายการว่างจะเป็น []
gigi2

เหตุใดจึงไม่เหมาะสม เกิดอะไรขึ้นกับ "empty_block_mapping:" (และไม่มีอะไรต่อจากนั้น)
Jonathan Hartley

6
@JonathanHartley เพียงแค่ออกจากทางด้านขวามือด้านข้างของempty_block_mapping:ว่างจะเทียบเท่าไม่empty_block_mapping: null empty_block_mapping: {}
rampion

8

เทคนิคทั่วไปในการตอบคำถามประเภทนี้เพื่อเสริมคำตอบที่ถูกต้องของ Betamos: ใช้ irb

$ irb
2.2.0 :001 > require 'yaml'
 => true 
2.2.0 :002 > puts({}.to_yaml)   # original question
--- {}
 => nil 
2.2.0 :003 > puts({ mixed_types: [{}, "string", :symbol, {symbol: "value"}, nil, 3] }.to_yaml)
---
:mixed_types:
- {}
- string
- :symbol
- :symbol: value
- 
- 3
 => nil

ฉันใช้สิ่งนี้ทุกครั้งที่ฉันไม่แน่ใจว่าจะเข้ารหัสบางสิ่งอย่างไร

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.