UPGRADE YOUR SKILLS: Learn advanced Swift and SwiftUI on Hacking with Swift+! >>

SOLVED: Multiple different behaviour after .reverse() or .reversed()

Forums > Swift

Hey guys, have a look at this code:

lets say that linesArray = ["A", "B", "C"] of type [String]

var linesArray      = fileContent.components(separatedBy: "\n")
        linesArray.reverse()
        // will print ["C", "B", "A"]. Is of type [String]
        let linesReverse = linesArray.reverse()
        // will print nothing. Is of type ()
        let linesReversed = linesArray.reversed()
        // will not flip, will print ["A", "B", "C"]. Is of type ReversedCollection<String>
        let linesReversedS :[String] = linesArray.reversed()
        // will flip, will print ["C", "B", "A"]. Is of type [String]

Why these results differ from each other so much? Thank you.

3      

.reverse() this take the array already there and reserve it where let linesReverse = linesArray.reverse() is trying to add a new property to the so you should use .reversed() and you need to cast the property to [String] so it will know to put the ReversedCollection<Array<String>>(_base: ["A", "B", "C"]).

You will find the same with shuffle() and shuffled()

3      

Hacking with Swift is sponsored by Essential Developer

SPONSORED Join a FREE crash course for mid/senior iOS devs who want to achieve an expert level of technical and practical skills – it’s the fast track to being a complete senior developer! Hurry up because it'll be available only until April 28th.

Click to save your free spot now

Sponsor Hacking with Swift and reach the world's largest Swift community!

Archived topic

This topic has been closed due to inactivity, so you can't reply. Please create a new topic if you need to.

All interactions here are governed by our code of conduct.

 
Unknown user

You are not logged in

Log in or create account
 

Link copied to your pasteboard.