Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What does the underscore mean in this case?

Tags:

syntax

swift2

my code before the migation to 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
    }
}

the migration told me to change it to

    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
    }

or

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

to

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

I can´t see, what is _ = standing for :-(

like image 369
Ulli H Avatar asked Sep 18 '15 15:09

Ulli H


1 Answers

_ is a placeholder. It means that the values assigned to _ are ignored.

Xcode's migration tool made this changes because it has detected that you didn't use source or myArray anywhere, thus replaced these variables by the placeholder.

Now instead of being assigned to a variable, the returning result of segue.sourceViewController as! RhymeViewController and the returning result of [String]() are ignored.

The returning result is ignored but the expression is still evaluated at runtime: if it has side effects, these effects will occur.

So if you actually don't need these instructions you should get rid of them entirely.

like image 125
Eric Aya Avatar answered Dec 08 '22 21:12

Eric Aya