当前位置 : 主页 > 手机开发 > 其它 >

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

来源:互联网 收集:自由互联 发布时间:2021-06-11
我正在学习使用 learnxinyminutes.com 我很难理解网站上示例的一个组成部分(下面),即在let语句中使用下划线而不是变量名. // Variadic Argsfunc setup(numbers: Int...) { let _ = numbers[0] let _ = numbers.cou
我正在学习使用 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)如果是这样,怎么样?

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

网友评论