由于函数是 Swift 中的一等公民,我可以这样做:
func someFunc(arg: Int) -> Int { return 1}
let v = someFunc
let out = v(3)
Run Code Online (Sandbox Code Playgroud)
这按预期工作。但同样的事情不能应用于似乎有点奇怪的运算符,因为运算符实际上只是函数。
func +(lhs: Int, rhs: Int) -> Int { return 1}
let op = + // results in an error
Run Code Online (Sandbox Code Playgroud)
有没有实际的方法来完成将运算符分配给变量?或者是将运算符包装在另一个可以分配的函数中的唯一方法?
用括号将运算符括起来,并明确指定类型,允许它解析和类型检查:
let op: (Int, Int) -> Int = (+)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
70 次 |
| 最近记录: |