这是一段非常简单的代码,但我觉得有一种更优雅的方法:

    if timeOfLastUpdate == nil {
        timeOfLastUpdate = currentTime
        return
    }

    //"Infinitesimal" moment of time used to update the position of the orbiter
    let dt:CFTimeInterval = currentTime - timeOfLastUpdate!
    timeOfLastUpdate = currentTime

    //Other code

我觉得应该有一个更优雅的方式来做以下使用可选链锁也许。我不喜欢这样的事实
a)我检查值是否等于零,而不是使用某种可选的链接
b)线timeOfLastUpdate = currentTime重复两次。
有更好的办法吗?有更符合斯威夫特的吗?

最佳答案

这个怎么样:

if timeOfLastUpdate = timeOfLastUpdate
{
  dt = currentTime - timeOfLastUpdate
}

timeOfLastUpdate = currentTime

如果在“timeOfLastUpdate为零”的情况下需要返回代码而不运行“其他代码”,则可能需要将timeOfLastUpdate = currentTime赋值显示两次:
if timeOfLastUpdate = timeOfLastUpdate
{
  dt = currentTime - timeOfLastUpdate
  timeOfLastUpdate = currentTime
  return
}
else
{
  timeOfLastUpdate = currentTime
}

//other code here.

关于ios - 有没有更好的方法可以做到这一点?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30741155/

10-12 13:25