Swift-实例化一个类-带括号和不带括号之间的差异

  • 本文关键字:之间 实例化 一个 Swift- swift
  • 更新时间 :
  • 英文 :


我有一个类

class OrderViewDetail{
var order : Order
init(order: Order){
self.order = order
}
}

现在有什么区别

var order1 = OrderViewDetail.init 

var order2 = OrderViewDetail.init(order: order) 

两者之间实际上有一个主要区别,

  • 第一个创建一个变量,该变量包含一个函数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)

var order1=OrderViewDetail.init

这将order1设置为init方法。以后可以使用let eg = order1(Order())创建新的OrderViewDetail对象。

var order2=OrderViewDetail.init((

这不会编译,因为OrderViewDetail中没有无参数的init。如果添加此项,将创建一个新的OrderViewDetail对象并将其分配给order2

最新更新