簡體   English   中英

Elixir-帶參數的混合運行示例

[英]Elixir - Mix run example with arguments

Elixir由Erlang OTP支持,后者使用Mix作為構建工具來創建和運行應用程序。

我現在作為初學者正在學習長生不老葯

我可以通過指定新的混合示例從命令行創建混合應用程序,並在其中編寫一些代碼以了解e劑和混合的基礎知識。

可以使用命令mix run sample.exs運行exsex文件

我正在嘗試編寫代碼以獲取特定類型的數字,例如在特定范圍(100000,20000)之間的質數

我想將兩個數字(100000,200000)作為混合運行命令的參數,例如mix run sample.exs 100000,200000,並在給定范圍內得到結果。

注意-我不想使用escript進行構建和執行,並且只需要使用mix run命令,而不要使用run -e

如何在exs文件中將args作為輸入值?

非常感謝

盡管System.argv/0在平凡的情況下可以正常工作,但我們通常使用OptionParser進行或多或少的復雜選項處理。

["--start", "0", "--end", "42"]
|> OptionParser.parse(
  strict: [start: :integer, end: :integer]
)
|> IO.inspect()
#⇒ {[start: 0, end: 42], [], []}

要使用這些值:

{args, _, _} =
  OptionParser.parse(
    ["--start", "0", "--end", "42"],
    strict: [start: :integer, end: :integer]
  )
Enum.each(args[:start]..args[:end], &IO.inspect/1)

為了獲取傳遞給程序的參數,您需要使用System.argv() 例如,給定以下exs腳本:

args = System.argv()  
       |> IO.inspect()

並運行elixir so_exs.exs input_1 input_2 (請注意,我在這里沒有Mix項目,因此我沒有使用mix run ),您將獲得以下信息。 現在, args變量包含傳遞給程序的所有參數的列表:

["input_1", "input_2"]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM