首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >时空循环中的Swift可选绑定

时空循环中的Swift可选绑定
EN

Stack Overflow用户
提问于 2018-01-18 10:56:20
回答 2查看 2K关注 0票数 7

根据Swift文档

可选的绑定可与if一同使用,语句用于检查可选选项中的值,并将该值提取为常量或变量,作为单个操作的一部分。

文档仅显示了使用if语句进行可选绑定的示例,如下所示:

代码语言:javascript
复制
if let constantName = someOptional {
    statements
}

我正在寻找一个使用while循环的optional-binding示例?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-18 11:02:54

都是一样的

代码语言:javascript
复制
while let someValue = someOptional
{
    doSomethingThatmightAffectSomeOptional(with: someValue)
}

下面是一个迭代链表的具体例子。

代码语言:javascript
复制
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
票数 10
EN

Stack Overflow用户

发布于 2018-01-18 11:05:03

我认为使用while let ...的优点是无限循环,可以检查某些变量是否有任何变化。但这很奇怪。对于这种工作,您应该使用didSet。或者其他好的例子是List数据结构。总之,下面是一个例子:

代码语言:javascript
复制
var value: Int? = 2

while let value = value {
    print(value) // 2
    break
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48319638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档