如何在CLI中使用xcrun swift传递参数?

时间:2015-03-19 04:45:39

标签: swift xcrun

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

xcrun swift sayHello.swift

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

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

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

你如何通过论证,例如鲍勃? 这看起来很有希望:

  

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

xcrun swift -D sayHello(Bob) sayHello.swift

但是,这不是我的预期。

1 个答案:

答案 0 :(得分:-1)

您可以将任意字符串作为命令行参数传递给进程,但是您可以 不能指望它们作为代码执行(如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 Peter Paul Mary
Hello, Peter!
Hello, Paul!
Hello, Mary!