【发布时间】:2019-02-01 02:11:28
【问题描述】:
阅读 Advanced Swift 并给出以下示例
“在 Swift 中,您可以通过两种方式定义函数。一种是使用 func 关键字。另一种方法是使用闭包表达式。考虑这个简单的函数来加倍一个数字:
func doubler(i: Int) -> Int {
return i * 2
}
[1, 2, 3, 4].map(doubler) // [2, 4, 6, 8]
这是使用闭包表达式语法编写的相同函数。和之前一样,我们可以将它传递给 map:
let doublerAlt = { (i: Int) -> Int in return i*2 }
[1, 2, 3, 4].map(doublerAlt) // [2, 4, 6, 8]”
我正在玩这个,并在集合视图单元格类中编写了以下代码。
let setupView = {(label: UILabel) in
addSubview(label)
label.topAnchor.constraint(equalTo: topAnchor).isActive = true
label.leftAnchor.constraint(equalTo: leftAnchor).isActive = true
label.bottomAnchor.constraint(equalTo: bottomAnchor).isActive = true
label.rightAnchor.constraint(equalTo: rightAnchor).isActive = true
}
func setupViews(label: UILabel) {
addSubview(label)
label.topAnchor.constraint(equalTo: topAnchor).isActive = true
label.leftAnchor.constraint(equalTo: leftAnchor).isActive = true
label.bottomAnchor.constraint(equalTo: bottomAnchor).isActive = true
label.rightAnchor.constraint(equalTo: rightAnchor).isActive = true
}
上面的那个给了我错误,但是下面那个使用 func 关键字的效果很好。我认为他们都应该工作。我想知道是否有人可以解释一下。
【问题讨论】:
-
这可能会有所帮助 - stackoverflow.com/a/39446450/7734643