微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

swift – 未使用的变量和’_’

我正在学习使用 learnxinyminutes.com

我很难理解网站上示例的一个组成部分(下面),即在let语句中使用下划线而不是变量名.

// Variadic Args
func setup(numbers: Int...) {
    let _ = numbers[0]
    let _ = numbers.count
}

我知道swift希望你使用下划线,如果你从来没有声明变量,但是1)为什么你要声明你从未使用过的变量?并且2)如果使用_,有没有办法获得这些值.并且,3)如果是这样,怎么样?

解决方法

1)为什么要声明从未使用过的变量?

一般来说你没有!在某些情况下,您可能会想要,例如Danny Buonocore给出的示例.另一个例子可能是这样的:假设你想在做某事之前检查变量是否为非零,尽管你不需要为后续代码使用该变量. (在这些情况下,警卫声明可能更有用).

if let _ = titleString {
// Do something that doesn't use titleString,but where it being non-nil means this operation is valid
}

一个例子是Swift函数.每次调用函数时,必须标识第二个,第三个等参数的名称.例如:

func externalizedParameters(first: Int?,second: Int?) {
...
}

使用externalizedParameters(5,second:6)调用.

但是,如果您正在做一些微不足道的事情,并且函数名称已经明确了两个参数是什么,例如使用交换操作,您可能不希望强制调用者显式声明第二个参数的名称.在这种情况下,您可以使用“_”,因为您不关心该外化参数的名称

func swap(first: Int?,_ second: Int?) {
    ...
}

然后可以将其称为swap(5,6)而不是swap(5,second:6).

2)如果使用_,有没有办法获得这些值. &安培; 3)如果是这样,怎么样?

不.如果要使用该值,则需要命名变量.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐