介绍 Swift ArgumentParser 库

Apple 最近新开源了一个库,叫 ArgumentParser,它是由 Swift 实现的,用于解析命令行参数(command-line arguments)的。

构建命令行工具

为了演示如何使用 ArgumentParser 库,我们将以一个生成随机数为示例。

> random 20
17
> random 100
89
> random
Error: Missing expected argument '<high-value>'
Usage: random <high-value>

定义了一个 Random 类型,并且需要一个整数类型的参数(highValue),然后会生成一个介于 1 和 highValue 之间的随机数。

源码如下:

import ArgumentParser

struct Random: ParsableCommand {
    @Argument() var highValue: Int

    func run() {
        print(Int.random(in: 1...highValue))
    }
}

Random.main()

实现就是这么简单。

  • @Argument 表明该属性是作为命令行参数(command-line argument)的。
  • 调用 main() 方法,将会开始解析,如果成功将运行命令行工具(command-line tool)。
  • 该库也会提供一些引导性的信息给用户,比如 highValue 属性的名称以及类型等。
  • highValue 被定义成 Int 类型,只有输入合法的值才可以,否则将会报错。

继续阅读“介绍 Swift ArgumentParser 库”