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 trialAdrian Yao
1,002 PointsI do not understand external and local names here?
I think thats the main problem? is there anything else wrong with the code?
// Enter your code below
func coordinates(for location: Strings) -> (Lat: Double, Lon: Double) {
switch for {
case Eiffel Tower: return(48.8582, 2.2945)
case Great Pyramid: return(29.9792, 31.1344)
case Sydney Opera House: return(33.8587, 151.2140)
default: return(0,0)
}
}
1 Answer
Heath Robertson
3,158 PointsEverything is correct, except you are switching on the external name. The correct way to do this is like so:
func coordinates(for location: String) -> (Double, Double) {
switch location {
case "Eiffel Tower": return(48.8582, 2.2945)
case "Great Pyramid": return(29.9792, 31.1344)
case "Sydney Opera House": return(33.8587, 151.2140)
default: return(0, 0)
}
}
Because location is the local name, that is what you switch on. Maybe rewatch the corresponding videos to brush over this concept.
Anyway, I hope this helped :)
EDIT -- I just reread it: It is possible it doesn't matter whether you switch on the local or external name. The main problem is that the cases are not strings, and are just typed
case "Eiffel Tower": return(48.8582, 2.2945)
case "Great Pyramid": return(29.9792, 31.1344) // Correct
case "Sydney Opera House": return(33.8587, 151.2140)
case Eiffel Tower: return(48.8582, 2.2945)
case Great Pyramid: return(29.9792, 31.1344) // Incorrect
case Sydney Opera House: return(33.8587, 151.2140)
Adrian Yao
1,002 PointsAdrian Yao
1,002 Pointsfunc coordinates(for location: Strings) -> (Lat: Double, Lon: Double) { switch location { case "Eiffel Tower": return(48.8582, 2.2945) case "Great Pyramid": return(29.9792, 31.1344) case "Sydney Opera House": return(33.8587, 151.2140) default: return(0,0) } }
It still says "Make sure you accept a single parameter of type String in your function declaration with the correct argument labels"? Help is appreciated. Thanks.
Heath Robertson
3,158 PointsHeath Robertson
3,158 PointsOhhh. I see!
You have typed
func coordinates(for location: Strings)
instead of:
func coordinates(for location: String)
You made 'String' plural.