【发布时间】:2023-03-25 12:23:02
【问题描述】:
好吧,我只是将 Xcode 更新到 7.3,现在我收到了这个警告:
'var' 参数已弃用,将在 Swift 3 中删除
当我需要在这个函数中使用 var 时如何解决这个问题:
public func getQuestionList(var language: String) -> NSArray {
if self.data.count > 0 {
if (language.isEmpty) {
language = "NL"
}
return self.data.objectForKey("questionList" + language) as! NSArray
}
return NSArray()
}
【问题讨论】:
-
public func getQuestionList(inout language: String) -> NSArray怎么样 -
不,这不是合适的替代品。 OP 可能不希望
getQuestion有任何副作用。 -
我真的不知道他们为什么会考虑删除它。这是让 swift 变得很棒的功能之一!
-
自己没用过,不懂大惊小怪。
-
@MikeTaverne(延迟回复)考虑以下函数:
func foo(_ bar: int) { /*use bar*/ bar+=1; foo(bar); }。如果没有 var 参数,这是不可能的。您要么需要在函数中创建一个单独的 var 并复制该值,要么将参数标记为 inout。前者很慢,后者导致未定义的行为。许多算法都使用这样的递归。