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 Closures in Swift 2 Closure Expressions Using Closure Expressions

Anthony Kim
Anthony Kim
4,010 Points

what is my fault?!

i already add trailing cloure.

but they keey said to me u should add trailing cloure.

so im just confuseed

what is my fault in my code.

plz help mee~

closures.swift
func doubleValue(i: Int) -> Int {
    return i * 2
}

let doubler = doubleValue
let doubledValues = [1,2,3,4].map(doubler)

doubledValues.map({ (i: Int) -> Int in return i * 2 })
doubledValues.map({ i in return i * 2 })
doubledValues.map({ i in i * 2 })
doubledValues.map({ $0 * 2 })
doubledValues.map() { $0 * 2 }
doubledValues.map{ $0 * 2 }

3 Answers

Florian Laplanche
Florian Laplanche
4,476 Points
func doubleValue(i: Int) -> Int {
    return i * 2
}

let doubler = doubleValue
let doubledValues = [1,2,3,4].map {$0 * 2}
Anthony Kim
Anthony Kim
4,010 Points

Thank u for ur Answerr~

Have a nice day Friends~

Florian Laplanche
Florian Laplanche
4,476 Points

All you have to do is change the existing map function to have a trailing closure like this

let doubledValues = [1,2,3,4].map {$0 * 2}
Anthony Kim
Anthony Kim
4,010 Points

already change like this but they keep said to me "Try and use a trailing closure for your closure expression"

<p>This is code!</p>
let doubledValues = [1,2,3,4].map({ (i: Int) -> Int in return i * 2 })
let doubledValues = [1,2,3,4].map({ i in return i * 2 })
let doubledValues = [1,2,3,4].map({ i in i * 2 })
let doubledValues = [1,2,3,4].map({ $0 * 2 })
let doubledValues = [1,2,3,4].map() { $0 * 2 }
let doubledValues = [1,2,3,4].map { $0 * 2 }
Florian Laplanche
Florian Laplanche
4,476 Points

you don't need to add all that code. From the original code provided, deleted the doubler function call from map and put the {$0 * 2} trailing closure