【问题标题】:New syntax for default values in Swift functionsSwift 函数中默认值的新语法
【发布时间】:2015-09-10 15:52:34
【问题描述】:

我刚刚注意到Xcode (7.1) 的最新测试版更改了Swiftprint 函数的签名。

新的语法是:

public func print(items: Any..., separator: String = default, terminator: String = default)

有人知道default 是什么吗?您如何指定默认值,而不仅仅是它有一个这一事实?

【问题讨论】:

    标签: cocoa swift2 default-value


    【解决方案1】:

    函数签名中的default表示它有一个默认值,你不必传递参数。

    func add(a: Int = 0, b: Int = 0) -> Int {
        return a + b
    }
    
    // "normal" function call
    add(2, b: 4) // 6
    
    // no specified parameters at all
    add() // 0; both a and b default to 0
    
    // one parameter specified
    // a has no external name since it is the first parameter
    add(3) // 3; b defaults to 0
    // b has an external name since it is not the first parameter
    add(b: 4) // 4; a defaults to 0
    

    如果print 函数separator 默认为" "terminator"\n"

    有四种调用方式:

    struct SomeItem {}
    print(SomeItem(), SomeItem())
    print(SomeItem(), SomeItem(), separator: "_")
    print(SomeItem(), SomeItem(), terminator: " :) \n")
    print(SomeItem(), SomeItem(), separator: "_", terminator: " :) \n")
    

    打印:

    SomeItem() SomeItem()
    SomeItem()_SomeItem()
    SomeItem() SomeItem() :)
    SomeItem()_SomeItem() :)
    

    【讨论】:

      【解决方案2】:

      默认separator是一个空格,默认terminator是换行符

      要为其中任何一个使用不同的值,只需在调用函数时将所需的值作为参数传递 - 例如:

      print("first", "second", separator: "-", terminator: "...")
      print("third")
      // => "first-second...third"
      

      【讨论】:

        猜你喜欢
        • 2017-09-11
        • 2016-11-03
        • 1970-01-01
        • 2013-04-26
        • 1970-01-01
        • 2017-08-24
        • 1970-01-01
        • 1970-01-01
        • 2019-01-14
        相关资源
        最近更新 更多