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 Functions and Optionals Parameters and Tuples Tuples

Robert Bird
Robert Bird
26,122 Points

I don't understand how the following code is wrong for challenge 2 o3 in Tuples videos. Please post correct code, thanks

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

return found

}

var result = greeting("Tom")

tuples.swift
func greeting(person: String) -> (greeting: String, language: String)  {
    let language = "English"
    let greeting = "Hello \(person)"
    var found = (language, greeting)

    return found
}

var result = greeting("Tom")

1 Answer

Jhoan Arango
Jhoan Arango
14,575 Points

Hello Robert:

This was an answer I gave another student. He had the same confusion with this challenge, and he said this helped him understand a bit better. IF this answer does not fit with you, please let me know and I will tailor an answer for you.

challenge says:

Currently our greeting function only returns a single value. Modify it to return both the greeting and the language as a tuple. Make sure to name each item in the tuple: greeting and language. We will print them out in the next task.

let’s break it down

First part says: Modify it to return both the greeting and the language as a tuple.

/* 
   Here the function says it will return just ONE value of type String
   and we need for it to say that it will return TWO values of type String. 
*/
func greeting(person: String) -> String { 
    let language = "English"
    let greeting = "Hello \(person)”
/*
   We also need to modify our return statement to return the two values,
   meaning, a tuple.
*/
    return greeting 
}

Here are the modifications:

                               // We create a tuple
func greeting(person: String) -> (String, String) {
    let language = "English"
    let greeting = "Hello \(person)"

    return greeting
}

Then it says: Make sure to name each item in the tuple: greeting and language.

                                    // We give them names
func greeting(person: String) -> (greeting: String, language: String) {
    let language = "English"
    let greeting = "Hello \(person)"

  // And modify it so that it returns both values of the tuple. 
    return (greeting, language)
}

var result = greeting(β€œTom”)

Hope that clears it out for you a bit.