- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经在 Apple Dev Forums 上发帖,但没有收到任何回复,如果您已经看到了,我深表歉意。我在 Beta 5 中发现了一个新的(潜在的)错误,我想知道是否有人有解决方法。
这条线在 Beta 4 中运行良好:
for i in 0 ... tiledMap.mapSize.width {
tiledMap.mapSize.width 是一个 CGFloat
在 beta 5 中,Swift 提示:
'ClosedInterval<T>' does not have a member named 'Generator'
如果我将 tileMap.mapSize.width 切换为 25 之类的常量,代码当然可以编译:
for i in 0 ... 25 {
最佳答案
这在Swift书上好像没有定义,但是觉得范围操作符...
是合理的和 ..<
不适用于 for ... in
中的 float 类型(Float、Double、CGFloat...)循环。我认为这可能会导致令人困惑的期望和困惑,因为 float 类型实际上没有一组合理的值可以在它们的两个值之间的范围内单步执行。
您可能会争辩说范围应该遍历起点和终点之间的整数值,但是 (a) 可能没有给定整数的精确浮点表示,以及 (b) 如果起点和终点之间会发生什么端点首先不是整数? (例如 for i in 0.3846...837.8
)有些人甚至可能期望 for ... in
遍历范围内所有可能的浮点值——整数就是这样。
对我来说,这里的语言设计很好:如果你想遍历两个浮点值之间的某些点,你应该将其明确化并使用不同的循环结构,使正在发生的事情更清楚:
for var i:CGFloat = 0; i <= tiledMap.mapSize.width; i++ {
漂浮物也可以跨步,这毫无值(value):
for i in stride(from: 0.0, through: tiledMap.mapSize.width, by: 1.0) {
关于swift - 'ClosedInterval<T>' 没有一个名为 'Generator' 的成员关于 CGFloat 是一个错误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25152947/
这两个 statemens 工作正常并返回相同的值: println(("A"..."Z").contains("B")) 和 var range = "A"..."Z" println(range.
为什么会这样: let i = 1...100 let s = [Int](i) 产量 [1, 2, 3, ..., 100] 但是 let i = "a"..."z" let s = [String
我已经在 Apple Dev Forums 上发帖,但没有收到任何回复,如果您已经看到了,我深表歉意。我在 Beta 5 中发现了一个新的(潜在的)错误,我想知道是否有人有解决方法。 这条线在 Bet
我是一名优秀的程序员,十分优秀!