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