moonbit有没有像支持c语言scanf的语法,可以支持处理args吗

moonbit有没有像支持c语言scanf的语法,如何通过键盘输入给变量赋值?

有处理args的方法吗,像c语言中./a.out 1 2,可以处理这里的1,2参数的方法?

scanf 需要参数数量不定的函数,这个暂时不支持。从文件读取东西可以用 https://github.com/moonbitlang/x。要从 stdin 读取键盘输入的话,moonbitlang/x 目前貌似缺了这个 API,我们后面会去加上。

cli args 麻烦的地方主要是 MoonBit 是个多后端的语言,有些后端比如 js/wasm 都不一定有 command line argument 的概念,所以暂时没有支持。但后面可能会考虑给 native 后端先单独加上 command line arguments 的支持。

如果只是想实验一些东西的话,一个 workaround 是把输入写到一个文件里,然后用 moonbitlang/x 的 API 去读取文件的内容。stdin 和 cli 参数暂时没有,但后面肯定会加上。读取 stdin 也可以自己用 native backend 的 C FFI 直接做:

// libc 的 `getchar` 函数,从 stdin 读取一个字符
extern "C" fn getchar() -> Int = "getchar"

想直接读到 String 里麻烦一点,需要写 C stub。