Syntax 在这种情况下,下划线是什么意思?

Syntax 在这种情况下,下划线是什么意思?,syntax,swift2,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! FavoritenVi

迁移至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
    }


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

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

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

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

返回的结果将被忽略,但表达式仍在运行时进行计算:如果有副作用,则会发生这些影响


因此,如果您实际上不需要这些指令,您应该完全删除它们。

它们是被忽略的还是只是编译器优化,因为不需要存储对未使用的变量的引用?它们会被计算(计算),但会返回结果(如果有的话)未在内存中赋值,它将无效。在编译时而不是运行时求值否,它们在运行时求值。但忽略结果(未赋值给变量)。如果这些函数有副作用,这些影响就会发生;只是如果它们返回某个东西,这个东西就会被忽略。@Eric D。非常感谢!这是有道理的,我理解;-)
    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]()    // !!!!!!!!!