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

Arturo Carrasco Jr
Arturo Carrasco Jr
3,021 Points

Im stuck & it keeps saying "Bummer! Make sure you accept a single parameter of type String in your function declaration"

Here's the code I used:

func coordinates(for: String, location: String) -> (Double, Double) {

var lat: Double = 0.0, lon: Double = 0.0

switch location {
case "Eiffel Tower": lat = 48.8582; lon = 2.2945
case "Great Pyramid": lat = 29.9792; lon = 31.1344
case "Sydney Opera House": lat = 33.8587;  lon = 151.2140
default: return (0,0)
}
return(lat, lon)

}

functions.swift
// Enter your code below


func coordinates(for: String, location: String) -> (Double, Double) {

    var lat: Double = 0.0, lon: Double = 0.0

    switch location {
    case "Eiffel Tower": lat = 48.8582; lon = 2.2945
    case "Great Pyramid": lat = 29.9792; lon = 31.1344
    case "Sydney Opera House": lat = 33.8587;  lon = 151.2140
    default: return (0,0)
}
    return(lat, lon)
}

1 Answer

John Roque Jorillo
John Roque Jorillo
13,117 Points

You are accepting two parameters which is for and location. External name will be shown if you call the function example: coordinates(for: "Eiffel Tower") instead of "location" it will display for instead. The local name in this function is location, and thats the variable you will use inside the function.

Here is the code.

func coordinates(for location: String) -> (Double, Double) {

var lat: Double = 0.0, lon: Double = 0.0

switch location {
case "Eiffel Tower": lat = 48.8582; lon = 2.2945
case "Great Pyramid": lat = 29.9792; lon = 31.1344
case "Sydney Opera House": lat = 33.8587;  lon = 151.2140
default: return (0,0)

} return(lat, lon) }