加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 04:34:16 所属栏目:百科 来源:网络整理
导读:我正在学习使用 learnxinyminutes.com 我很难理解网站上示例的一个组成部分(下面),即在let语句中使用下划线而不是变量名. // Variadic Argsfunc setup(numbers: Int...) { let _ = numbers[0] let _ = numbers.count} 我知道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)如果是这样,怎么样?

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读