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 trialdexter foo
8,233 PointsNot really following how the if let statement works in this case
let toy = Electronic(title: "RC Car", price: 79)
toy.batteries = true
if let batteries = toy.batteries {
if batteries{
println("Batteries included.")
} else {
println("Batteries not included.")
}
}
Based on the above code, the if let statement will print "Batteries included". But however if the toy.batteries = false, it will print "Batteries not included"
I dont understand why the condition, if batteries{ println("Batteries included") only prints if the condition toy.batteries = true is met.
Shouldn't it be if batteries = true { println("Batteries included"), then it will print "Batteries included" when toy.batteries = true?
Help im getting a bit confused here since there isn't any conditions stated for the if let statement!
3 Answers
Frank Novello
19,299 Pointscan we use this instead i think it reads better
if(toy.batteries != nil) {
}
Lukas Smith
4,026 Pointsooo it is easy always every language (i think) you can use if VALUE it is the same if you use IF VALUE = TRUE the same You can use IF !VALUE it is the same IF VALE = FALSE (if value exist is like default) in PHP for example u can use
(value) ? true : false
the same like
if (value = true) { sth for true; } else { smh for false; }
dexter foo
8,233 Pointsum i'm sorry but i didnt get anything you were trying to explain.
what i'm trying to ask is that how does the if let statement condition knows that it will only print "Batteries included" when toy.batteries = true when the condition only states if batteries.
Vaclav Mlejnsky
6,832 Pointsif batteries {}
is same as asking if batteries != nil {}
dexter foo
8,233 Pointsoh thanks!! does this apply to all if statements? whereby if a condition is not stated as in the example, it is the same as != nil ?
Vaclav Mlejnsky
6,832 PointsYes, it should be as you are saying. You can also use
if !batteries {}
instead of typing:
if batteries == nil {}
Basically you are asking if batteries
contains reference to some object.
Leonardo Santos
5,290 PointsIn some language (like Python) it's true. But I think it's not the case here. "if batteries" is only evaluating if the variable batteries is true or false.