【发布时间】:2021-12-23 17:50:31
【问题描述】:
最近在用swift编程语言学习函数式编程,发现了一个名为Swiftz的库,发现了一个很奇怪的函数调用方式,想请教一下有没有人知道为什么会这样,谢谢!
这里的代码很简单,Person().walk <*> 10 对我来说太连线了,<*> 之前和<*> 之后是空格但没有发生错误????。
import Swiftz
class Person {
func walk(step: Int) {
print("walk \(step) step")
}
}
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
Person().walk <*> 10
// ⬇️ normal way for same result
// Person().walk(step: 10)
}
}
// print result: walk 10 step
我尝试在 Swiftz 中找到<*> 代码,但原因不明。
public func <*> <A, B>(f : ((A) -> B)?, a : A?) -> B? {
return f.flatMap { $0 <^> a }
}
【问题讨论】:
标签: ios swift xcode functional-programming