การอ่านอาร์กิวเมนต์จากคำสั่งลำดับ

Elm:
การอ่านอาร์กิวเมนต์จากคำสั่งลำดับ

วิธีการ:

Elm ทำงานในเบราว์เซอร์ ดังนั้นจึงไม่มีสิทธิพิเศษในการเข้าถึงอาร์กิวเมนต์บรรทัดคำสั่งโดยตรงเหมือนกับภาษาฝั่งเซิร์ฟเวอร์หรือภาษาสำหรับเดสก์ท็อป อย่างไรก็ตาม เพื่อการสาธิต ลองสมมติว่าคุณกำลังใช้ Elm กับเฟรมเวิร์กฝั่งเซิร์ฟเวอร์เช่น Node.js ผ่าน elm server หรือการตั้งค่าที่คล้ายกัน ซึ่งอนุญาตให้ผ่านอาร์กิวเมนต์ เท่านั้น โค้ดของคุณจะไม่จัดการกับอาร์กิวเมนต์โดยตรง แต่เราจะจำลองรูปแบบดังนี้:

-- สมมติว่ามีอาร์กิวเมนต์มาจากฝั่งเซิร์ฟเวอร์
type alias Flags = 
    { arg1 : String
    , arg2 : Int
    }

-- ตัวอย่างฟังก์ชัน `init` ของ Elm ที่ใช้ Flags
init : Flags -> ( Model, Cmd Msg )
init flags =
    ( { defaultModel | passedArg1 = flags.arg1, passedArg2 = flags.arg2 }
    , Cmd.none
    )

ตัวอย่างผลลัพธ์ (จัดโครงสร้างเหมือนถูกส่งมาจากเซิร์ฟเวอร์):

{ "arg1": "Hello", "arg2": 42 }

วิเคราะห์ลึก

เนื่องจาก Elm เป็นภาษาฝั่งหน้าบ้าน ดังนั้นโดยปกติจะไม่จัดการกับอาร์กิวเมนต์บรรทัดคำสั่ง ตัว Elm ทำงานในสภาพแวดล้อมที่ควบคุมโดยเบราว์เซอร์ บรรทัดคำสั่งเป็นสิ่งที่เหลืออยู่จากยุคคอมพิวเตอร์แรกๆ ทำหน้าที่เป็นหน้าต่างเข้าไปยังระบบ

ใน Node.js หรือสภาพแวดล้อมที่คล้ายกัน คุณจะใช้ process.argv เพื่อรับอาร์กิวเมนต์ ด้วย Elm การเริ่มต้นโปรแกรม Elm จาก JavaScript โดยใช้ flags จะใกล้เคียงที่สุด ซึ่งช่วยในการส่งต่อข้อมูลภายนอก เรายอมรับอาร์กิวเมนต์จากบรรทัดคำสั่งผ่านภาษาฝั่งเซิร์ฟเวอร์โดยอ้อม แล้วส่งต่อไปยัง Elm ในรูปแบบของ flags

สำหรับการผสมผสานอย่างลึกซึ้ง โปรแกรม Elm ถูกบันทึกไว้ร่วมกับโค้ดฝั่งเซิร์ฟเวอร์ ให้ประสบการณ์ที่ไม่มีรอยต่อกับผู้ใช้ รูปแบบการเริ่มต้นโปรแกรม Elm ด้วย flags ที่เฉพาะเจาะจงนี้มีพลังอย่างมาก ช่วยให้สามารถเริ่มต้นได้อย่างยืดหยุ่นและปรับแต่งได้ตามสภาพแวดล้อมและกรณีการใช้งานที่แตกต่างกัน

ดูเพิ่มเติม