swift – 逻辑运算符的类型是什么?
发布时间:2020-12-14 05:33:18 所属栏目:百科 来源:网络整理
导读:我想将它们用作我的Region结构的方法的参数: private func combineWith(region: RegionProtocol,combine: (Bool,Bool) - Bool) - Region { return Region() {point in combine(self.contains(point),region.contains(point)) }} 但显然,(Bool,Bool) – Bool
我想将它们用作我的Region结构的方法的参数:
private func combineWith(region: RegionProtocol,combine: (Bool,Bool) -> Bool) -> Region { return Region() {point in combine(self.contains(point),region.contains(point)) } } 但显然,(Bool,Bool) – > Bool)不是什么&&或||是.如果您知道,请告诉我您是如何发现的.
如果你在语句中“cmd-click”单词“Swift”
import Swift 在Xcode中搜索||然后你会发现它被声明为 func ||<T : BooleanType>(lhs: T,rhs: @autoclosure () -> Bool) -> Bool 原因是||的“短路”行为operator:如果是第一个 所以你必须将参数声明为 combine: (Bool,@autoclosure () -> Bool) -> Bool 例: func combineWith(a : Bool,b : Bool,@autoclosure () -> Bool) -> Bool) -> Bool { return combine(a,b) } let result = combineWith(false,true,||) println(result) 注意:我使用Xcode 6.1.1进行了测试. autoclosure的语法 我现在唯一可以提供的东西非常难看 func combineWith(a : Bool,() -> Bool) -> Bool) -> Bool { return combine(a,{ b }) } let result = combineWith(false,{ $0 || $1() } ) 或者你没有短路行为: func combineWith(a : Bool,Bool) -> Bool) -> Bool { return combine(a,{ $0 || $1 } ) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |