在这种情况下,下划线意味着什么?

时间:2015-09-18 15:45:46

标签: syntax swift2

我在安装Swift 2.0之前的代码:

   override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
    if (segue.identifier == "RhymeFavoriten") {
        // pass data to next view
        let dest = segue.destinationViewController as! FavoritenViewController
        let source = segue.sourceViewController as! RhymeViewController // !!!!!!
        dest.favoritenType = 1
        dest.delegate = self
    }
}

迁移告诉我将其更改为

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
    if (segue.identifier == "RhymeFavoriten") {
        // pass data to next view
        let dest = segue.destinationViewController as! FavoritenViewController
        _ = segue.sourceViewController as! RhymeViewController // !!!!!!!!!!
        dest.favoritenType = 1
        dest.delegate = self
    }

    func textSelected(selectedText:String, selectedType:Int) {
        var fullTextArr = text.componentsSeparatedByString("\n")
        var myArray = [String]()  // !!!!!!

    func textSelected(selectedText:String, selectedType:Int) {
        var fullTextArr = text.componentsSeparatedByString("\n")
        _ = [String]()    // !!!!!!!!!

我看不出, _ = 代表什么: - (

1 个答案:

答案 0 :(得分:9)

_是一个占位符。这意味着将忽略分配给_的值。

Xcode的迁移工具进行了此项更改,因为它检测到您没有在任何地方使用sourcemyArray,因此占位符替换了这些变量。

现在,我们不会将其分配给变量,而是会忽略segue.sourceViewController as! RhymeViewController的返回结果和[String]()的返回结果。

忽略返回的结果,但仍在运行时评估表达式:如果它有副作用,则会发生这些效果。

因此,如果你真的不需要这些说明,你应该完全摆脱它们。