可选绑定可与 if 和 while 语句一起使用,以检查可选内的值,并将该值提取为常量或变量,作为单个操作的一部分。
该文档仅显示使用if语句的可选绑定示例:
if let constantName = someOptional {
statements
}
我正在寻找使用while循环可选绑定的示例吗?
答案 0 :(得分:1)
它是相同的
while let someValue = someOptional
{
doSomethingThatmightAffectSomeOptional(with: someValue)
}
以下是迭代链表的具体示例。
class ListNode
{
var value: String
var next: ListNode?
init(_ value: String, _ tail: ListNode?)
{
self.value = value
self.next = tail
}
}
let list = ListNode("foo", ListNode("bar", nil))
var currentNode: ListNode? = list
while let thisNode = currentNode
{
print(thisNode.value)
currentNode = thisNode.next
}
// prints foo and then bar and then stops
答案 1 :(得分:0)
我认为使用while let ...
的优势是无限循环,可以检查某些变量是否有任何变化。但这很奇怪。对于这种工作,您应该使用didSet
。或者其他好例子是List
数据结构。无论如何,这是一个例子:
var value: Int? = 2
while let value = value {
print(value) // 2
break
}