Elixir由Erlang OTP提供支持,它使用Mix作为创建和运行应用程序的构建工具。
我现在正在学习长生不老药作为初学者
我可以通过指定混合新示例从命令行创建混合应用程序 我在其中编写了一些代码来学习长生不老药和混合的基础知识。
EXS和EX文件可以使用命令mix run sample.exs运行
我正在尝试编写代码以获取特定类型的数字,例如特定范围(100000,20000(之间的质数
我想给出两个数字 (100000,200000( 作为混合运行命令的参数,例如mix run sample.exs 100000,200000并在给定范围内获得结果。
注意 - 我不想使用 escript 构建和执行,只需要使用 mix run 命令,也不需要mix run -e
如何将参数作为 exs 文件中的输入值?
多谢
虽然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"]