我正在使用 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) 如果是,怎么做?
没有。如果要使用该值,则需要为变量命名。
关于swift - 未使用的变量和 '_',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38667125/