为什么在查看“显示结果”时Xcode Playground扩展中出现一条水平线?

时间:2019-12-08 09:12:01

标签: swift swift-playground xcode11

我正在学习Swift扩展,并在Playground中为Double编写了一个简单扩展。代码如下。

extension Double {          
    func round(to places: Int) -> Double {
        let precisionNumber = pow(10, Double(places))
        var n = self        //self contains the value of the myDouble variable
        n = n * precisionNumber
        n.round()
        n = n / precisionNumber
        return n
    }
}

var myDouble = 3.14159
myDouble.round(to: 1)

该扩展程序按计划工作,但是当我在扩展程序中任何一行代码的右列中按“显示结果”(眼睛图标)时,都会看到一条水平线。

enter image description here

有人知道这行应该表示什么吗?使用Xcode 11.2.1和Swift5。

1 个答案:

答案 0 :(得分:0)

这里的问题是您还没有透露所有的游乐场。我的猜测是,还有更多代码,您可以再次在扩展名为 。也许您的真实代码看起来像这样:

extension Double {
    func round(to places: Int) -> Double {
        let precisionNumber = pow(10, Double(places))
        var n = self        //self contains the value of the myDouble variable
        n = n * precisionNumber
        n.round()
        n = n / precisionNumber
        return n
    }
}

var myDouble = 3.14159
myDouble.round(to: 1) // once
print(myDouble)

myDouble = myDouble.round(to: 1) // twice; in your case it's probably another value
print(myDouble)

如果您的目的是编写和调试扩展程序,那么这是编写操场的一种非常糟糕的方法,这正是您已经说明的原因。您已经两次调用了扩展名,那么什么有意义的值可以显示为扩展名每一行的“结果”?游乐场必须尝试向您显示两个调用结果中的两个结果。它唯一想到的方法是绘制两个结果。

这是一种非常有用的表示,但是,当您故意循环循环或重复执行代码时,因为您至少可以从图中了解到每次循环时值如何变化