我正在学习使用 learnxinyminutes.com 我很难理解网站上示例的一个组成部分(下面),即在let语句中使用下划线而不是变量名. // Variadic Argsfunc setup(numbers: Int...) { let _ = numbers[0] let _ = numbers.cou
我很难理解网站上示例的一个组成部分(下面),即在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)如果是这样,怎么样?
不.如果要使用该值,则需要命名变量.