Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

iOS Enumerations and Optionals in Swift Introduction to Enumerations Enums with Associated Values

Rachel Ny
Rachel Ny
3,073 Points

What does it mean to destructure something? I'm learning about enums and am very confused by this.

This is the sample code:

let aTrade = Trades.Buy(stock: "APPL", amount: 200, stockPrice: 115.5)

switch aTrade { case .Buy(let stock, let amount, _): process(stock, amount) case .Sell(let stock, let amount, _): process(stock, amount * -1) } // Prints "buy 200 of APPL"

This is a quote: "Swift lets us conveniently only destructure / extract the information from the enum that we really want. In this case only the stock and the amount."

What do they mean by destructure?

Also, can someone explain what's going in the switch statement? Why do we have to say "let stock, let amount"? I thought let was meant to define a constant...?"

I am so confused. Can someone please help?