繁体   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