class Argopt

public class ArgOpt {
    public init(shortArgFormat: String)
    public init(longArgList: Array<String>)
    public init(shortArgFormat: String, longArgList: Array<String>)
    public init(args: Array<String>, shortArgFormat: String, longArgList: Array<String>)
}

功能:Argopt 用于解析命令行参数,并提供了获取解析结果的功能。

一个命令行参数是由前缀符号、参数名、参数值组成。

其中 "-" 表示短参(短命令行参数)的前缀,"--" 表示长参(长命令行参数)的前缀。可解析的短参参数名只能是字母,可解析长参参数名字符串需满足:以字母开头,参数名中不能包含 "="。

例如:"-a123" 和 "--target=abc.txt" 为两个命令行参数,"a" 为短参名,"target" 为长参名。而 "-123" 和 "--tar=get=abc.txt" 则是错误的命令行参数。

该类允许用户指定参数名和参数字符串,并提供根据参数名解析字符串的方法。

用户指定短参名和长参名时格式如下:

  • 短参名字符串的参数,格式为:"a:",规范为:一位字母和 ":" 的组合,例如:"ab:",该例仅解析 "b" 作为短参名。
  • 长参名字符串数组参数,字符串格式为:"--testA=" 或 "testA=",规范为:"--" + 长参参数名 + "="(前缀"--"可省略)。

根据参数名解析命令行参数时,若命令行参数格式正确且有对应的参数名,可正确解析并被用户获取;否则不会解析。

例如:参数名为 "a:b:",命令行参数为 "-a123 -cofo",将解析出参数名为 "a",参数值为 "123" 的命令行参数。"-cofo" 则不会解析。

init(Array)

public init(longArgList: Array<String>)

功能:构造 ArgOpt 实例,并从列表的字符串中解析长参名。

参数:

  • longArgList: Array<String> - 包含长参名的字符串数组。

异常:

  • IllegalArgumentException - 当字符串数组中的长参名字符串不符合规范,或字符串不符合 UTF-8 编码,或不存在该 Unicode 字符时,抛出异常。

init(Array<String>, String, Array<String>)

public init(args: Array<String>, shortArgFormat: String, longArgList: Array<String>)

功能:构造 ArgOpt 实例,并从短参名字符串中解析短参名、从列表的字符串中解析长参名,若解析成功,则依据解析出的参数名从参数 args 指定的命令行参数中解析参数名的对应取值。

参数:

  • args: Array<String> - 待解析的命令行参数字符串数组。
  • shortArgFormat: String - 包含短参名的字符串。
  • longArgList: Array<String> - 包含长参名的字符串数组。

异常:

  • IllegalArgumentException - 当短参名字符串不符合规范,或字符串数组中的长参名字符串不符合规范,或字符串不符合 UTF-8 编码,或不存在该 Unicode 字符时,抛出异常。

init(String)

public init(shortArgFormat: String)

功能:构造 ArgOpt 实例,并从短参名字符串中解析短参名。

参数:

  • shortArgFormat: String - 包含短参名的字符串。

异常:

  • IllegalArgumentException - 当短参名字符串不符合规范时,或字符串不符合 UTF-8 编码,或不存在该 Unicode 字符时,抛出异常。

init(String, Array<String>)

public init(shortArgFormat: String, longArgList: Array<String>)

功能:构造 ArgOpt 实例,并从短参名字符串中解析短参名、从列表的字符串中解析长参名。

参数:

  • shortArgFormat: String - 包含短参名的字符串。
  • longArgList: Array<String> - 包含长参名的字符串数组。

异常:

  • IllegalArgumentException - 当短参名字符串不符合规范,或字符串数组中的长参名字符串不符合规范时,或字符串不符合 UTF-8 编码,或不存在该 Unicode 字符时,抛出异常。

func getArg(String)

public func getArg(arg: String): Option<String>

功能:返回参数 arg 指定参数的解析值。

参数:

  • arg: String - 前缀和参数名组成的字符串(可省略前缀)。

返回值:

func getArgumentsMap()

public func getArgumentsMap(): HashMap<String, String>

功能:获取所有已解析的参数名和参数值,以哈希表的形式返回。

返回值:

func getUnparseArgs()

public func getUnparseArgs(): Array<String>

功能:返回未被解析的命令行参数。

返回值:

  • Array<String> - 存放没有被解析的字符串的数组。