2015-03-19 16 views
0

安裝了Xcode後,我想在命令行中編譯並運行.swift文件。明白了,可以這樣做:如何在CLI中使用xcrun 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 

但是,這不是我所期待的。

回答

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 Peter Paul Mary 
Hello, Peter! 
Hello, Paul! 
Hello, Mary! 
+0

感謝@馬丁-R – bucephalus 2015-03-20 04:11:22