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 trialJonathan Elder
983 PointsHow do i modify this code to return both the greeting and the language as a tuple?
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.
func greeting(#person: String) -> String {
let language = "English"
let greeting = "Hello \(person)"
return greeting
}
let (greeting, language) = greeting(person: "Tom")
2 Answers
Don Miller
1,773 PointsYou can name the tuples by using a name and colon:
func greeting(#person: String) -> (greeting: String, language: String) {
let language = "Spanish"
let greeting = "Hello \(person)"
return (greeting, language)
}
let languageGreeting: (greeting:String, language:String) = greeting(person: "Tomas")
Don Miller
1,773 Pointsfunc greeting(#person: String) -> (greeting: String, language: String) {
let language = "Spanish"
let greeting = "Hello \(person)"
return (greeting, language)
}
let languageGreeting: (greeting:String, language:String) = greeting(person: "Tomas")
languageGreeting.language //choose one of the defined
Jonathan Elder
983 PointsJonathan Elder
983 Pointsthat code is all correct but it wasn't the answer they were looking for apparently. It still gave me the "Bummer! Your function needs to return a tuple with elements named 'greeting' and 'language'." error.
Don Miller
1,773 PointsDon Miller
1,773 PointsI edited the code to name each of the tuple variables.
Jonathan Elder
983 PointsJonathan Elder
983 PointsThanks that worked!
Jonathan Elder
983 PointsJonathan Elder
983 Pointslast question
''' func greeting(#person: String) -> (greeting: String,language: String) { let language = "English" let greeting = "Hello (person)"
return (greeting, language)
}
let languageGreeting: (greeting:String, language:String) = greeting(person: "Tom")
var result = greeting(person: "Tom") println("(result)") '''
It prints "(Hello Tom, English)" it needs to print "English". How do i fix that?