0Pricing
Ruby Academy · บทเรียน

การกำหนดค่า 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 เพื่อ read
  • to_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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การอ่านและเขียน JSON
  2. การทำงานกับ CSV
  3. การกำหนดค่า YAML
  4. การเลือกรูปแบบข้อมูล
← กลับไปที่ Ruby Academy