swift - Swift 中的 function 和 function(_:) 有什么区别?
问题描述
我最近习惯于在 SwiftflatMap
中映射String?
到。Double?
来电:
optionalString.flatMap(Double.init)
和
optionalString.flatMap(Double.init(_:))
产生相同的结果。我有两个问题:
Double.init
和有区别Double.init(_:)
吗?- 我不认为你可以在真正的 Swift 代码中使用函数签名。您可以在哪些其他示例中使用这些示例?
解决方案
Double.init
不,和之间没有区别Double.init(_:)
。这些在 Swift 中被称为第一类函数。例如:
extension UIView {
func addSubviews(_ views: UIView...) {
views.forEach(addSubview)
}
}
更多信息:Swift 中的一流函数
Double.init
编辑:和之间有区别Double.init(_:)
。(查看评论)
推荐阅读
- javascript -
从带有柏树标签的元素中获取行分隔文本 - php - 尽管设置了区域设置,为什么 strfitme 仍以英文显示日期?
- r - 如何检查字符串(完全或部分)是否与数据框所有列上的值匹配?
- javascript - 单击嵌套元素时数据切换不起作用
- typescript - typeorm connection.createQueryRunner 在nestjs中使用时不是函数
- laravel - 从 Next.js 页面调用 Laravel API 时出现内部服务器错误
- python - Pandas 错误:“尝试获取空序列的 argmax”
- postgresql - 如何使用密钥加密 PostgreSQL 中的整个表
- html - 在小屏幕上水平居中内容
- python-3.x - 如何根据一些计算,诉诸 django 来填充表格视图?