Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/94.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 斯威夫特-这一点从何而来?_Ios_Swift - Fatal编程技术网

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)