在 Swift 中,参数前的 _(下划线)表示省略参数标签。
·

区别:
-
有
_:调用时直接传值,不需要写参数名 -
没有
_:调用时必须写参数名point:
没有 _ 的情况:
func normalizedToViewPoint(point: CGPoint) -> CGPoint {
// 调用时:normalizedToViewPoint(point: somePoint)
}
有 _ 的情况:
func normalizedToViewPoint(_ point: CGPoint) -> CGPoint {
// 调用时:normalizedToViewPoint(somePoint)
}
为什么这样设计?
-
更简洁的调用:对于某些方法,参数意义很明确,不需要额外标签
-
遵循 Swift API 设计准则:让调用读起来像句子
-
好的:
move(to: point) -
更好的:
moveTo(x: 10, y: 20) -
简洁的:
normalizedToViewPoint(somePoint)
-
在你的代码中,使用 _ 让调用更简洁:
// 而不是:normalizedToViewPoint(point: someNormalizedPoint)
let viewPoint = normalizedToViewPoint(someNormalizedPoint)
这是 Swift 语言设计中为了提升代码可读性和简洁性的特性。
更多推荐

所有评论(0)