我正在学习使用
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] 举报,一经查实,本站将立刻删除。