我正在尝试创建一个 ocaml 程序,用户在其中输入类似于命令行参数的输入,例如......
./program
$ -s foo -i 84
$ -s bar -i 22
Run Code Online (Sandbox Code Playgroud)
...基本上是一个简单的菜单程序。
我希望能够使用 ocaml Args来执行此操作(特别是内置的“用法”等),但我意识到这仅适用于命令行。有没有办法重新调整该库的用途以用于程序内用户输入,或者最好将Stream/Parser库中的某些内容或完全不同的解决方案组合在一起?
(请注意,模块名称是Arg,而不是Args。)
Arg.parse_argv如果您愿意编写代码将行分解为单词,那么该函数似乎完全可以满足您的要求。
(请注意,在类 Unix 系统中,将Arg行分解为单词的是 shell,而不是模块。因此,要使用Arg这种方式,您必须执行 shell 会执行的操作。)