Đọc các đối số dòng lệnh

Elixir:
Đọc các đối số dòng lệnh

Làm thế nào:

Trong Elixir, việc lấy các đối số dòng lệnh thật đơn giản. Sử dụng System.argv() và bạn sẽ bắt được chúng dưới dạng một danh sách chuỗi.

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

CliArgs.main()

Chạy điều này như elixir cli_args.exs foo bar baz, và mong đợi:

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

Bạn đang thấy các đối số foo, bar, và baz ngay đó trong một danh sách Elixir.

Sâu hơn

Về mặt lịch sử, các đối số dòng lệnh cổ xưa như núi, bắt nguồn từ môi trường CLI sơ khai. Trong Elixir, System.argv() là người bạn đáng tin cậy cho công việc này. Tại sao? Bởi vì nó được tích hợp sẵn vào Erlang VM, nơi mà Elixir được xây dựng trên đó.

Có phương án khác không? Chắc chắn, bạn có các thư viện phân tích các đối số cho bạn, thêm cờ và tùy chọn. Nhưng đối với Elixir thuần túy, System.argv() là cách đi.

Về mặt thực hiện, quan trọng là phải nhớ rằng System.argv() cung cấp tất cả các đối số dưới dạng chuỗi. Nếu bạn cần số hoặc các loại khác, bạn sẽ phải chuyển đổi chúng một cách thủ công. Ngoài ra, thứ tự cũng rất quan trọng. Đối số dòng lệnh đầu tiên của bạn là List.first(System.argv()), và tiếp theo như vậy.

Xem thêm

Để biết thêm, hãy kiểm tra: