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 trial

iOS Functions in Swift Adding Power to Functions Returning Complex Values

Arthur Arutyunyan
Arthur Arutyunyan
864 Points

Possible Error in Directions

How is it possible to name the parameter, for, when for is a keyword.

// Enter your code 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)

1 Answer

28,558 Points

It's generally true that you can't use keywords as names in Swift, but parameter names are actually an exemption to that rule. There are only three words you cannot use as a parameter name and that is inout, var, and let. Any name other than those three are valid, regardless of whether or not it is a keyword.

You can get more details on keyword restrictions in the Keywords and Punctuation section of the official Swift documentation.

Also you didn't ask for help with your code, but your code is so close to correct that I feel like giving you a hint. You should take a close look at the default case of your switch statement. There is one error on that line that causes your code to not compile. Fixing that one issue will allow you to pass the challenge.