【发布时间】:2022-01-11 09:30:53
【问题描述】:
我有一个闭包函数,我想在其中分配一个默认值,但我收到一个错误,因为 元组类型中不允许默认参数
func getResponse(address: String, completion : @escaping ((_ lat : CLLocationDegrees, _ long : CLLocationDegrees, _ attributedPlaceName: String, _ placeId: String? = nil)->())) {
}
【问题讨论】:
-
我认为你根本做不到,因为闭包是一个带有返回值的“元组”。所以如果这在
(Int, Int? = nil, Int? = nil)和(1,2)之间是可能的,是(1, nil, 2)还是(1, 2, nil)?在该元组中命名变量并没有太大变化。 -
只有函数定义可以有默认参数值。这是一个函数/闭包type。类型不能有默认参数值。
-
你的方法是错误的。完成块返回值,但完成块的实现可以通过使用
_而不是值的变量名来简单地忽略这些。