การกำหนดค่า YAML
โหลดและส่งออก YAML
การกำหนดค่า YAML เป็นบทเรียน Ruby Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Ruby Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Ruby Academy มีบทเรียนทั้งหมด 4 บทเรียน
YAML คืออะไร
YAML (YAML ไม่ใช่ภาษามาร์กอัป) คือรูปแบบข้อมูลที่มนุษย์อ่านเข้าใจง่ายและใช้กันอย่างแพร่หลายสำหรับการกำหนดค่า รูบีอ่าน YAML ผ่านไลบรารี yaml ซึ่งสร้างบนไลบรารีไซค์
require 'yaml'
text = "name: Ruby\nyear: 1995"
p YAML.load(text)การโหลด YAML
YAML.load แยกวิเคราะห์สตริง YAML เป็นออบเจ็กต์ของรูบี การจับคู่จะกลายเป็นแฮช และลำดับจะกลายเป็นอาร์เรย์
require 'yaml'
cfg = YAML.load("port: 8081\ndebug: true")
puts(cfg['port'])
puts(cfg['debug'])การเยื้องบรรทัดกำหนดโครงสร้าง
YAML ใช้การเยื้องบรรทัด (ใช้ช่องว่างเท่านั้น ห้ามใช้แท็บ) เพื่อแสดงการซ้อนโครงสร้าง แต่ละระดับที่ลึกลงไปจะเยื้องมากขึ้น
require 'yaml'
text = "server:\n host: localhost\n port: 8081"
cfg = YAML.load(text)
puts(cfg['server']['port'])รายการใน YAML
ลำดับจะเขียนโดยใช้ขีดนำหน้า และจะ parse เป็น Ruby Array
require 'yaml'
text = "tags:\n - fun\n - oop\n - dynamic"
p YAML.load(text)['tags']การ dump เป็น YAML
YAML.dump (หรือ to_yaml) จะแปลงออบเจ็กต์ Ruby กลับเป็นข้อความ YAML
require 'yaml'
data = { 'name' => 'Ruby', 'tags' => ['fun', 'oop'] }
puts(YAML.dump(data))ชนิดสเกลาร์
YAML จะอนุมานชนิดข้อมูลให้ ได้แก่ ตัวเลข ค่าบูลีน (true/false) และ null ซึ่งจะแปลงเป็นค่าที่ตรงกันใน Ruby
require 'yaml'
cfg = YAML.load("count: 3\nactive: false\nnote: null")
puts(cfg['count'].class)
puts(cfg['note'].inspect)คีย์ Symbol
คีย์ที่เขียนโดยมีโคลอนนำหน้าจะกลายเป็น Ruby Symbol เมื่อ load
require 'yaml'
cfg = YAML.load(":env: production")
p cfgเอกสารหลายชุด
ไฟล์ YAML ไฟล์เดียวสามารถเก็บเอกสารได้หลายชุด โดยคั่นแต่ละชุดด้วย --- ส่วน YAML.load_stream จะส่งคืนเอกสารทั้งหมด
require 'yaml'
text = "a: 1\n---\nb: 2"
docs = YAML.load_stream(text)
puts(docs.length)การเขียนไฟล์การตั้งค่า
บันทึกแฮชการตั้งค่าเป็นไฟล์ YAML ที่อ่านได้ง่าย
require 'yaml'
require 'tmpdir'
path = File.join(Dir.tmpdir, 'config.yml')
File.write(path, { 'port' => 8081 }.to_yaml)
puts(File.read(path))การอ่านไฟล์การตั้งค่า
YAML.load_file จะ read และ parse ไฟล์ด้วยการเรียกเพียงครั้งเดียว ซึ่งเป็นวิธีทั่วไปที่แอปใช้ load การตั้งค่า
require 'yaml'
require 'tmpdir'
path = File.join(Dir.tmpdir, 'app.yml')
File.write(path, "name: AppPanel\nport: 8081")
cfg = YAML.load_file(path)
puts(cfg['name'])การโหลดอย่างปลอดภัย
การ load YAML ที่ไม่น่าเชื่อถืออาจไม่ปลอดภัย YAML.safe_load จะจำกัดให้ใช้ชนิดข้อมูลพื้นฐานเป็นค่าเริ่มต้น เพื่อป้องกันเพย์โหลดที่มุ่งร้าย
require 'yaml'
cfg = YAML.safe_load("port: 8081\nname: app")
puts(cfg['port'])ตรวจสอบอย่างรวดเร็ว
YAML ใช้อะไรเพื่อแสดงการซ้อนระดับและโครงสร้าง
สรุปทบทวน: การตั้งค่า YAML
คุณสามารถจัดการการตั้งค่าใน YAML ได้ดังนี้:
YAML.load/load_fileเพื่อ readto_yaml/YAML.dumpเพื่อ write- การเยื้องกำหนดการซ้อนระดับ และขีดใช้สร้างรายการ
- สเกลาร์จะอนุมานเป็นตัวเลข ค่าบูลีน และ null
- ควรใช้
safe_loadกับอินพุตที่ไม่น่าเชื่อถือ
require 'yaml'
puts(YAML.load("x: 5")['x'] * 2)คำถามที่พบบ่อย
บทเรียน “การกำหนดค่า YAML” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การกำหนดค่า YAML” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Ruby Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Ruby Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การกำหนดค่า YAML”
โหลดและส่งออก YAML คุณปฏิบัติ Ruby Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Ruby Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Ruby Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “การกำหนดค่า YAML” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Ruby Academy นี้ได้ไหม
ได้ บทเรียน Ruby Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การอ่านและเขียน JSON
- การทำงานกับ CSV
- การกำหนดค่า YAML
- การเลือกรูปแบบข้อมูล