gpt4 book ai didi

ios - Swift - 重点从何而来?

转载 作者:搜寻专家 更新时间:2023-11-01 06:09:52 25 4
gpt4 key购买 nike

我很难理解下面的简单函数。神秘的“点”从何而来?

typealias Position = CGPoint
typealias Distance = CGFloat
typealias Region = Position -> Bool


func circle(radius: Distance) -> Region {
return { point in
sqrt(point.x * point.x + point.y * point.y) <= radius
}
}

最佳答案

circle 函数返回一个包含以下声明的闭包:

(Position) -> Bool

point 是传递给闭包的参数名称,Position 类型 - 也许重写函数如下更清楚:

func circle(radius: Distance) -> Region {
let closure: Region = { (point: Position) -> Bool in
return sqrt(point.x * point.x + point.y * point.y) <= radius
}

return closure
}

您可以将 circle 函数的返回值赋给一个变量:

let closure = circle(1.0)

然后调用它:

let p = CGPoint(x: 1.0, y: 1.0)
closure(p)

p 参数在闭包声明中被称为(并被引用为)point

关于ios - Swift - 重点从何而来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27974507/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com