Swift 中的 function 和 function(_:) 有什么区别?
What is the difference between function and function(_:) in Swift?
我最近使用 flatMap
将 String?
映射到 Swift 中的 Double?
。来电:
optionalString.flatMap(Double.init)
和
optionalString.flatMap(Double.init(_:))
产生相同的结果。我有两个问题:
Double.init
和Double.init(_:)
有区别吗?
- 我不认为您可以在实际 Swift 代码中使用函数签名。您还可以使用哪些其他示例?
不,Double.init
和Double.init(_:)
没有区别。
这些在 Swift 中称为第一个 class 函数。
例如:
extension UIView {
func addSubviews(_ views: UIView...) {
views.forEach(addSubview)
}
}
更多信息:First class functions in Swift
编辑:Double.init
和 Double.init(_:)
之间有区别。 (查看评论)
我最近使用 flatMap
将 String?
映射到 Swift 中的 Double?
。来电:
optionalString.flatMap(Double.init)
和
optionalString.flatMap(Double.init(_:))
产生相同的结果。我有两个问题:
Double.init
和Double.init(_:)
有区别吗?- 我不认为您可以在实际 Swift 代码中使用函数签名。您还可以使用哪些其他示例?
不,Double.init
和Double.init(_:)
没有区别。
这些在 Swift 中称为第一个 class 函数。
例如:
extension UIView {
func addSubviews(_ views: UIView...) {
views.forEach(addSubview)
}
}
更多信息:First class functions in Swift
编辑:Double.init
和 Double.init(_:)
之间有区别。 (查看评论)