Ios 斯威夫特-这一点从何而来?
我很难理解下面的简单函数。神秘的“点”从何而来Ios 斯威夫特-这一点从何而来?,ios,swift,Ios,Swift,我很难理解下面的简单函数。神秘的“点”从何而来 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) <= ra
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
}
}
typealias位置=CGPoint
typealias距离=CGFloat
类型别名区域=位置->布尔
func圆(半径:距离)->区域{
返回{点输入
sqrt(点x*点x+点y*点y)点
指的是您在返回
语句后定义的闭包参数。请参阅此处的更多信息:点指的是您在返回
语句后定义的闭包参数。请参阅此处的更多信息:圆
函数返回clos有此声明:
(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
}
然后调用它:
let p = CGPoint(x: 1.0, y: 1.0)
closure(p)
p
参数在闭包声明中被称为(并被引用为)点
函数返回具有此声明的闭包:
(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
}
然后调用它:
let p = CGPoint(x: 1.0, y: 1.0)
closure(p)
p
参数在闭包声明中被称为(并被引用为)点
{ point in
sqrt(point.x * point.x + point.y * point.y) <= radius
}
{指向
sqrt(点x*点x+点y*点y)输入
sqrt(点x*点x+点y*点y)布尔{
返回sqrt(point.x*point.x+point.y*point.y)您的闭包
{ point in
sqrt(point.x * point.x + point.y * point.y) <= radius
}
{指向
sqrt(点x*点x+点y*点y)输入
sqrt(点x*点x+点y*点y)布尔{
返回sqrt(点.x*点.x+点.y*点.y)