区别:

  • 有 _:调用时直接传值,不需要写参数名

  • 没有 _:调用时必须写参数名 point:

没有 _ 的情况:

func normalizedToViewPoint(point: CGPoint) -> CGPoint {
    // 调用时:normalizedToViewPoint(point: somePoint)
}

有 _ 的情况:

func normalizedToViewPoint(_ point: CGPoint) -> CGPoint {
    // 调用时:normalizedToViewPoint(somePoint)
}

为什么这样设计?

  1. 更简洁的调用:对于某些方法,参数意义很明确,不需要额外标签

  2. 遵循 Swift API 设计准则:让调用读起来像句子

    • 好的:move(to: point)

    • 更好的:moveTo(x: 10, y: 20)

    • 简洁的:normalizedToViewPoint(somePoint)

在你的代码中,使用 _ 让调用更简洁:

// 而不是:normalizedToViewPoint(point: someNormalizedPoint)
let viewPoint = normalizedToViewPoint(someNormalizedPoint)

这是 Swift 语言设计中为了提升代码可读性和简洁性的特性。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐