0x00 Lesson

We just made a travel() function. It accepts one parameter, which is a closure that itself accepts one parameter and returns a string. That closure is then run between two calls to print().

Here’s that in code:

func travel(action: (String) -> String) {

print("I'm getting ready to go.")

let descripton = action("London")

print("description")

print("I arrived!")

}

We can call travel() using something like this:

travel { (place: String) -> String in

return "I'm going to \(place) in my car"

}

However. Swift knows the parameter to that closure must be a string, so we can remove it:

travel { place -> String in

return "I'm going to \(place) in my car"

}

It also knows the closure must return a string, so we can remove that:

travel { place in

return "I'm going to \(place) in my car"

}

As the closure only has one line of code that must be the one that returns the value, so Swift lets us remove the return keyword too:

travel { place in

"I'm going to \(place) in my car"

}

Swift has a shorthand syntax that lets you go even shorter. Rather than writing place in we can let Swift provide automatic names for the closure’s parameters. These are named with a dollar sign, then a number counting from 0.

travel {

"I'm toing to \($0) in my car"

}

0x01 我的小作品

欢迎体验我的作品之一:小五笔 五笔学习好帮手 App Store 搜索即可~

好文链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: