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 Swift 2.0 Functions Function Parameters Returning Complex Values

abdirahman liban
PLUS
abdirahman liban
Courses Plus Student 2,163 Points

i need help

i need help

functions.swift
// Enter your code below

func getTowerCoordinates (var lat:Double ,var lon:Double , location:String)->(Double,Double) {

    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 : (0,0)



    }

    return (lat , lon)

}
luke jones
luke jones
8,915 Points

// Enter your code below

func getTowerCoordinates (location:String) -> (lat: Double,long: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)

}

}

getTowerCoordinates("Eiffel Tower") // This will return 48.8582, 2.2945

1 Answer

Steven Deutsch
Steven Deutsch
21,046 Points

Hey abdirahman liban,

First, your function only needs to have one parameter. A location of type String. This will be the value we are switching on inside of the function. Second, for each case statement we want to return something when the case is matched. Our function needs to return a tuple of Doubles, (Double, Double), because that is the return type we specified. So, what we return for each matched string of the location being switched on is a tuple of doubles that contain the latitude and longitude for that particular location.

// Enter your code below

func getTowerCoordinates (location: String) -> (Double,Double) {

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

Good Luck!