【问题标题】:How do you pass an argument with xcrun swift in CLI?如何在 CLI 中使用 xcrun swift 传递参数?
【发布时间】:2015-03-19 04:45:39
【问题描述】:

安装 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

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

【问题讨论】:

    标签: swift xcrun


    【解决方案1】:

    您可以将任意 strings 作为命令行参数传递给进程,但是您 不能指望它们作为代码(如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 彼得保罗玛丽
    你好,彼得!
    你好,保罗!
    你好,玛丽!
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-14
      • 2021-07-30
      • 2019-12-31
      • 1970-01-01
      • 2018-07-21
      • 1970-01-01
      • 2016-05-25
      相关资源
      最近更新 更多