如果我这样写问答不合适,请告诉我。另外,我也期待更好的答案。我提供的两种解决方案都不是完美的。
现在网上有一些 Kotlin 参数解析器,例如GitHub:xenomachina/kotlin-argparser、GitHub:Kotlin/kotlinx.cli或GitHub:ajalt/clikt。但是我不想将这么大的文件夹添加到我的(也许)小项目中。我想要的是一个简单而干净的解决方案,例如只是一个函数,具有“流畅”的流式实现。相反,这些项目都包含多个文件。
我的想法是,只需要将命令行参数解析为 a Map<String, List<String>>,使用map.containsKey()来获取no_argument参数,然后使用map[key]来获取required_argument参数。
例如,命令行参数列表
-a -b c -d e f g -h --ignore --join k --link m n o -p "q r s"
Run Code Online (Sandbox Code Playgroud)
将被解析为:
{-a=[], -b=[c], -d=[e, f, g], -h=[], --ignore=[], --join=[k], --link=[m, n, o], -p=[q r s]}
Run Code Online (Sandbox Code Playgroud)
或者我们说
mapOf(
"-a" to listOf(), // POSIX style, no argument
"-b" to listOf("c"), // POSIX style, with single argument
"-d" to listOf("e", …Run Code Online (Sandbox Code Playgroud) 我无法启动我的模拟器。我尝试从 AVD 管理器启动它,但收到此错误。

然后我尝试从终端启动它,但现在我明白了。
