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

functions.swift
// 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
16,953 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)
  }
}