Elixir语言 - 将运行示例与参数混合



Elixir由Erlang OTP提供支持,它使用Mix作为创建和运行应用程序的构建工具。

我现在正在学习长生不老药作为初学者

我可以通过指定混合新示例从命令行创建混合应用程序 我在其中编写了一些代码来学习长生不老药和混合的基础知识。

EXSEX文件可以使用命令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"]

最新更新