1

安装 Xcode 后,我想在命令行中编译和运行一个 .swift 文件。明白了,可以这样做:

xcrun swift sayHello.swift

但是,我想在命令行中传递一个参数。

例如,在 sayHello.swift 中使用以下函数:

func sayHello(personName: String) -> String {
    let greeting = "Hello, " + personName + "!"
    return greeting
}

你如何传递参数,例如 Bob?这看起来很有希望:

-D 指定一个或多个构建配置选项

xcrun swift -D sayHello(Bob) sayHello.swift

但是,这不是我所期望的。

4

1 回答 1

0

您可以将任意字符串作为命令行参数传递给进程,但不能期望它们作为代码执行(如sayHello(Bob))。

在 Swift 中,Process.arguments是一个字符串数组,其中包含给进程的所有命令行参数。第一个元素(在索引 0 处)是可执行文件本身的路径,其他命令行参数从索引 1 开始:

// sayHello.swift

func sayHello(personName: String) -> String {
    let greeting = "Hello, " + personName + "!"
    return greeting
}

let args = Process.arguments
for i in 1 ..< args.count {
    let name = args[i]
    let greeting = sayHello(name)
    println(greeting)
}

例子:

$ xcrun swift sayHello.swift 彼得保罗玛丽
你好,彼得!
你好,保罗!
你好,玛丽!
于 2015-03-19T06:34:40.083 回答