Cin*_*ndy 1 linked-list ios swift
在下面的代码中,编译器抱怨"可选类型'ListNode的值?' 没打开;你的意思是用'!' 要么 '?'?"
该代码用于操作链表:
var cur: ListNode? = head
while (cur != nil){ // this line has error
cur = cur.next
}
Run Code Online (Sandbox Code Playgroud)
我的问题是如何修复错误,因为cur被声明为可选的?我检查了其他解包的答案,但这个条件是在while循环条件下.
Mar*_*n R 17
我强烈认为错误实际上发生cur = cur.next在线上,因为cur它是可选的."快速而肮脏"的修复方法是强行打开它:
var cur: ListNode? = head
while cur != nil {
// do something with `cur!` ...
cur = cur!.next
}
Run Code Online (Sandbox Code Playgroud)
但正确的解决方案是使用可选绑定,它不仅if可以与while以下组合使用,还可以与:
var cur: ListNode? = head
while let node = cur {
// do something with `node` ...
cur = node.next
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1573 次 |
| 最近记录: |