在 Swift 中,您可以将 nil 作为函数的输入传递吗?

In Swift, can you pass nil as an input to a function?

我正在阅读很多关于您不应该检查对象是否为 nil 的文章。这是一个 objC 范例,它是一个糟糕的设计,并且 swift 它已被淘汰。所以我的问题是,根据下面的示例,您可以将 "group" 作为 nil 值传递吗?调用函数时是否会发生 nil 检查机制,因此无需实现 if(group==nil){..} ?

func deleteMembershipForGroup(group:GroupData){
}

您需要使用一个可选的:

func deleteMembershipForGroup(group:GroupData?){
  if let groupReal = group {
  // not nil
  }
}

是的! Thomas Kilian 是对的,它对我有用!然后您将能够传递一个 nil 参数。您还会注意到,使用可选变量时,它还会删除警告,指出变量 "group" 将始终为真。

func deleteMembershipForGroup(group:GroupData?){
   if let groupReal = group { <--- Warning gone!
   // not nil
   }
}