Elm:
การทำงานร่วมกับ TOML
วิธีการ:
Elm ไม่มีตัวแยกสำเร็จรูป TOML ในตัว แต่คุณสามารถทำงานร่วมกับ JavaScript หรือใช้แพคเกจของชุมชน นี่คือวิธีที่คุณอาจจะวิเคราะห์ TOML โดยใช้แพคเกจ elm-toml
ที่เป็นสมมุติ:
import Toml
configToml : String
configToml =
"""
[server]
port = 8080
"""
parseResult : Result Toml.Decode.Error Toml.Value
parseResult =
Toml.decodeString configToml
สำหรับการถอดรหัสค่าเฉพาะ:
portDecoder : Toml.Decode.Decoder Int
portDecoder =
Toml.Decode.field "server" (Toml.Decode.field "port" Toml.Decode.int)
port : Result String Int
port =
Toml.decodeString portDecoder configToml
ตัวอย่างผลลัพธ์สำหรับ port
อาจเป็น Ok 8080
ถ้าการถอดรหัสสำเร็จ
ดำดิ่งลึก
TOML ถูกสร้างขึ้นโดย Tom Preston-Werner ผู้ร่วมก่อตั้ง GitHub เป็นภาษาง่าย ๆ สำหรับไฟล์การตั้งค่า มันแข่งขันกับ YAML และ JSON; ไวยากรณ์ของ TOML มุ่งหวังสำหรับสิ่งที่ดีที่สุดของทั้งสองโลกด้วยความสนใจในการทำให้ง่ายสำหรับมนุษย์ในการอ่านและเขียน
ใน Elm, เพื่อจัดการกับ TOML, คุณโดยปกติต้องผ่าน JavaScript interop ซึ่งอาจดูเป็นอุปสรรคอย่างหนึ่งได้ โชคดีที่ชุมชน Elm อุดมไปด้วยทรัพยากร และมีแพคเกจภายนอกหลายตัว เช่น แพคเกจ elm-toml
ที่สมมุติขึ้น น่าจะใช้ Port
ของ Elm เพื่อสื่อสารกับตัวแยก TOML ของ JavaScript หรือประมวลผลการแยกโดยตรงใน Elm
อุปสรรคหลักใน Elm คือมันประเภทแบบสถิติทุกอย่าง ดังนั้นคุณจะต้องเขียนตัวถอดรหัสแบบกำหนดเองเพื่อจัดการกับโครงสร้างข้อมูลที่ต่างกันภายใน TOML ซึ่งอาจดูเป็นไปโดยพูดมากหน่อยแต่เพิ่มความปลอดภัย
ดูเพิ่มเติม
สำหรับข้อกำหนดและข้อมูลเพิ่มเติมเกี่ยวกับ TOML ให้ตรวจสอบ TOML หากคุณกำลังค้นหาวิธีการเข้ามือทำกับ Elm และ JavaScript interop ให้เริ่มต้นด้วยคู่มืออย่างเป็นทางการ: Elm Ports สำหรับแพคเกจของชุมชนหรือการมีส่วนร่วม ให้เรียกดู Elm Packages