作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我很困惑为什么在实现 Fibonacci 生成器时要使用 let
关键字。
struct FibonacciGenerator: GeneratorType {
typealias Element = Int
var values = (0, 1)
mutating func next() -> Element? {
self.values = (
self.values.1,
self.values.0 + self.values.1
)
return self.values.0
}
}
var generator = FibonacciGenerator()
while let next = generator.next() {
if next > 10 {
break
}
print(next)
}
为什么我们在 while
循环中(在下一条语句之前)使用 let
而不是 var
?
最佳答案
let
应该在定义常量时使用,这意味着该值之后可能不会更改,这里就是这种情况。如果您要在任何时候修改 next
,则必须使用 var
关键字将其声明为变量。
关于swift - 使用 while 循环和 let 关键字的令人困惑的生成器类型实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39937780/
我是一名优秀的程序员,十分优秀!