[英]Elixir - Mix run example with arguments
Elixir由Erlang OTP支持,后者使用Mix作为构建工具来创建和运行应用程序。
我现在作为初学者正在学习长生不老药
我可以通过指定新的混合示例从命令行创建混合应用程序,并在其中编写一些代码以了解e剂和混合的基础知识。
可以使用命令mix run sample.exs运行exs和ex文件
我正在尝试编写代码以获取特定类型的数字,例如在特定范围(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.