首页 > 解决方案 > Swift - 实例化一个类 - 带括号和不带括号的区别

问题描述

我有一堂课

class OrderViewDetail{
    var order : Order

    init(order: Order){
        self.order = order
    }
}

现在有什么区别:

var order1 = OrderViewDetail.init 

var order2 = OrderViewDetail.init(order: order) 

标签: swift

解决方案


两者其实还是有很大区别的

  • 第一个创建一个包含函数的变量,init(order:)
  • 第二个创建一个新实例OrderViewDetail

var order1 = OrderViewDetail.init // type is (Order) -> OrderViewDetail

var order2 = OrderViewDetail.init(order: someOrderObject) // type is OrderViewDetail

使用第一个变量创建一个新的 OrderViewDetail

let order3 = order1(someOrderObject)

推荐阅读