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

Jeff Wilkey
Jeff Wilkey
10,296 Points

[Swift: Functions and Optionals] Tuples Challenge Help

So the task in the challenge is "Create a variable named result and assign it the tuple returned from function greeting. (Note: pass the string "Tom" to the greeting function.)"

func greeting(#person: String) -> (language: String, greeting: String) {
    let language = "English"
    let greeting = "Hello \(person)"

    return (language, greeting)
}

var result = greeting(person: "Tom")

I tried adding changing the result line to this...

 var result = (language, greeting(person: "Tom")) 

but that didn't work either.

Any help here?

2 Answers

Oliver Pinchbeck
Oliver Pinchbeck
2,732 Points

The error checking means you have to have the tuple the other way round in the return statement. Same thing really, but this will work:

func greeting(person: String) -> (language: String, greeting:String) {
    let language = "English"
    let greeting = "Hello \(person)"

    return (greeting, language)
}

var result = greeting("Tom")
Jeff Wilkey
Jeff Wilkey
10,296 Points

Thanks Oliver it worked!

I believe they are asking for the code to be rewritten by adding a variable named result with the tuple (greeting,language) returned. Try the code below and see if that works.

func greeting(person:String)->

(greeting:String,language:String){
var result = ("Hello \(person)","English")

    return result

}

Tuples group multiple values into a single compound value and are particularly useful as the return values of functions.

Jeff Wilkey
Jeff Wilkey
10,296 Points

Oliver's answer turned out to be correct, the return value in the tuple just needed to be flipped.