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!

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 Functions in Swift Adding Power to Functions Returning Complex Values

Mika Yamada
Mika Yamada
iOS Development with Swift Techdegree Student 2,060 Points

I cannot get right answer

I am not sure if I am on the right truck. I

// Enter your code below
func coordinates(for location: String) -> (lat: Double, lon: Double) {
  var lat = 0.0
  switch location {
    case "Eiffel Tower": lat = 48.8582
    case "Great Pyramid": lat = 29.9792
    case "Sydney Opera House": lat = 33.8587
    default : lat = 0.0

  var lon = 0.0 
  switch location {
    case "Eiffel Tower": lon = 2.2945
    case "Great Pyramid": lon = 31.1344 
    case "Sydney Opera House": lon = 151.2140
    default : lon = 0.0

  return (lat, lon)

1 Answer

Magnus Hållberg
Magnus Hållberg
17,232 Points

You have made it more complicated than needed. First, the contest say that you should return a tuple with two values and that you don't have to name them so remove the names but keep the types. Second, you can return a tuple directly from iside the switch so there is no need for two switches. That also makes the lon and lat variables you have declared unnecessary so remove those as well. With that done you should have something that loks like below.

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)