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.