Commandoregelargumenten lezen

Elixir:
Commandoregelargumenten lezen

Hoe:

In Elixir is het grijpen van commandoregelargumenten een fluitje van een cent. Gebruik System.argv() en je zult ze als een lijst van strings bemachtigen.

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

CliArgs.main()

Draai dit door elixir cli_args.exs foo bar baz te zijn, en verwacht:

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

Je ziet de argumenten foo, bar en baz daar recht in een Elixir-lijst.

Diepgaande Bespreking

Historisch gezien zijn commandoregelargumenten zo oud als de weg naar Rome, voortkomend uit vroege CLI-omgevingen. In Elixir is System.argv() je trouwe ros voor deze klus. Waarom? Omdat het ingebakken zit in de Erlang VM, waarop Elixir is gebouwd.

Alternatieven? Zeker, je hebt bibliotheken die argumenten voor je ontleden, met toevoeging van vlaggen en opties. Maar voor standaard Elixir is System.argv() de weg te gaan.

Wat betreft de implementatie, is het belangrijk te onthouden dat System.argv() je alle argumenten als strings geeft. Als je nummers of andere types nodig hebt, zul je ze handmatig moeten converteren. Ook de volgorde doet ertoe. Je eerste commandoregelargument is List.first(System.argv()), en zo voort.

Zie Ook

Voor meer informatie, bekijk: