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

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

วิธีการ:

ใน Elixir, การดึงอาร์กิวเมนต์บนคอมมานด์ไลน์ง่ายมาก ใช้ System.argv() แล้วคุณจะได้รับพวกมันเป็นรายการของสตริง

defmodule CliArgs do
  def main do
    args = System.argv()
    IO.inspect(args)
  end
end

CliArgs.main()

รันสิ่งนี้โดยใช้คำสั่ง elixir cli_args.exs foo bar baz, และคาดหวัง:

["foo", "bar", "baz"]

คุณกำลังเห็นอาร์กิวเมนต์ foo, bar, และ baz อยู่ในลิสต์ของ Elixir นั้นเอง

ลงลึก

โดยประวัติศาสตร์แล้ว, อาร์กิวเมนต์บนคอมมานด์ไลน์เก่าแก่ดั่งเกล็ดเขา, มีต้นกำเนิดมาจากสภาพแวดล้อม CLI ตั้งแต่ยุคแรก ใน Elixir, System.argv() เป็นพาหนะที่คุณสามารถไว้วางใจได้สำหรับงานนี้ เพราะอะไร? เพราะมันถูกฝังอยู่ใน Erlang VM, ซึ่ง Elixir ถูกสร้างขึ้นมาบนนั้น

มีทางเลือกอื่นไหม? แน่นอน, คุณมีไลบรารีต่างๆ ที่ช่วยวิเคราะห์อาร์กิวเมนต์ให้คุณ, โดยเพิ่มธงและตัวเลือกต่างๆ แต่สำหรับ Elixir แบบวานิลลา, System.argv() คือทางที่จะไป

จากมุมมองการประยุกต์ใช้, มันสำคัญที่จะจำไว้ว่า System.argv() ให้คุณรับอาร์กิวเมนต์ทั้งหมดเป็นสตริง หากคุณต้องการตัวเลขหรือประเภทอื่นๆ, คุณจะต้องแปลงมันด้วยตัวเอง นอกจากนี้, ลำดับมีความสำคัญ อาร์กิวเมนต์คำสั่งแรกของคุณคือ List.first(System.argv()), และต่อไปเช่นกัน

ดูเพิ่มเติม

สำหรับข้อมูลเพิ่มเติม, ตรวจสอบ:

  • เอกสารโมดูล System ของ Elixir สำหรับฟังก์ชันที่มีประโยชน์อื่นๆ เกี่ยวกับระบบ
  • Optparse ในไลบรารีมาตรฐานของ Elixir, ซึ่งเป็นเครื่องมือสำคัญสำหรับการวิเคราะห์ตัวเลือกบนคอมมานด์ไลน์
  • เอกสาร init ของ Erlang หากคุณสนใจเกี่ยวกับเวทมนตร์ที่อยู่ในเครื่อง VM ที่สนับสนุน Elixir