Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

iOS Swift 2.0 Functions Function Parameters Returning Complex Values

Paul Oh
Paul Oh
763 Points

I am trying to return 2 double values by entering a string in a function.

What needs to be in the return portion of the code to receive 2 double values as the output?

functions.swift
// Enter your code below
func getTowerCoordinates (location: String) -> (lat: Double, lon: Double) {
switch location {
  case "Eiffel Tower": (48.8582, 2.2945)
  case "Great Pyramid": (29.9792, 31.1344)
  case "Sydney Opera House": (33.8587, 151.2140)
  default: (0,0)
  }
  return (lat, lon)
  }

1 Answer

Christin Lepson
Christin Lepson
24,269 Points

You were very close. First thing, you need to delete the space between the getTowerCoordinate function name and the (location: String). Second, you need to delete the names lat and lon. The way you wrote it is actually good, but for some reason the question doesn't want us to name the return values in this function. Lastly, you put 'return' in the wrong spots. Since we want to return the double values as a tuple, we put the return keyword in front of the tuples in our switch. The code should look like this:

func getTowerCoordinates(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)
  }
}
Paul Oh
Paul Oh
763 Points

Thank you Christian! your explanations were really great!