根据Swift文档
可选的绑定可与if和一同使用,语句用于检查可选选项中的值,并将该值提取为常量或变量,作为单个操作的一部分。
文档仅显示了使用if语句进行可选绑定的示例,如下所示:
if let constantName = someOptional {
statements
}我正在寻找一个使用while循环的optional-binding示例?
发布于 2018-01-18 11:02:54
都是一样的
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发布于 2018-01-18 11:05:03
我认为使用while let ...的优点是无限循环,可以检查某些变量是否有任何变化。但这很奇怪。对于这种工作,您应该使用didSet。或者其他好的例子是List数据结构。总之,下面是一个例子:
var value: Int? = 2
while let value = value {
print(value) // 2
break
}https://stackoverflow.com/questions/48319638
复制相似问题