Swift中`get {}`和`{get}`有什么区别?

时间:2015-08-20 20:37:25

标签: xcode swift

我一直在查看UIViewController类并尝试理解它的一些代码,即类中提到的get。我在google上搜索了“在swift中有什么意义{}”,并在“计算机属性”部分下找到了以下资源:Swift what are 'get' and 'set'?https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Properties.html。但是,这里提到的get并不是我想要的,也就是说,这两个链接中提到的这两个get都是以下形式:

var center: Point {
        get {
            let centerX = origin.x + (size.width / 2)
            let centerY = origin.y + (size.height / 2)
            return Point(x: centerX, y: centerY)
        } 

请注意get {}。但是,我感到困惑的get如下:

extension UIViewController {
    // These objects may be used as layout items in the NSLayoutConstraint API
    @available(iOS 7.0, *)
    var topLayoutGuide: UILayoutSupport { get }
    @available(iOS 7.0, *)
    var bottomLayoutGuide: UILayoutSupport { get }
}

请注意{ get }

有人可以澄清get {}{ get }之间的区别吗?非常感谢您提前花时间和精力回答这个问题!

1 个答案:

答案 0 :(得分:3)

?表示变量可以为null,或者在Swift-speak中为“optional”。

{ get }表示该属性是只读的。它无法修改。