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 trialMathew Abhulimen
673 PointsPlease can anyone figure out why i'm getting an error with this code?
Challenge Task 2 of 2 (Optionals)
Question: Using the if-let statement, assign the value from the search function to a constant named result. If the name was found, use println to print out the string "Found". When calling the search function, pass it the name "Doc".
func search(#name: String) -> String?{ let names = ["Doc","Grumpy","Happy","Sleepy","Bashful","Sneezy","Dopey"] for n in names { if n == name { return n } } return nil } if let result = search("Doc"){
println("Found \(result)")
}
func search(#name: String) -> String?{
let names = ["Doc","Grumpy","Happy","Sleepy","Bashful","Sneezy","Dopey"]
for n in names {
if n == name {
return n
}
}
return nil
}
if let result = search("Doc"){
println("Found \(result)")
}
1 Answer
Francisco Navarro
14,185 PointsHi Mathew,
As you are using the "#" symbol in the search function, this tells Swift to use that name as both the local parameter name and the external parameter name so if you call this method you have to put the argument name like this:
if let result = search(name:"Doc"){ }
Furthermore, this challenge is requiring you to output "Found" instead of "Found (result)".
Hope that helps!
Mathew Abhulimen
673 PointsMathew Abhulimen
673 PointsThanks for the help Francisco, It worked.