带有字典的 Swift Playground 太慢

标签 swift swift-playground

我在 Xcode 7.1 中使用以下代码创建了一个 Swift Playground,它的评估速度非常慢(通常需要几分钟)。为什么会发生这种情况?由于它使 Playground 基本上无法使用,我可以采取什么措施来缩短其执行时间吗?

let sets = [
    "TEMPERATURE":[
        (value:37.0, attributes:["A":0.0, "B":0.2]),
        (value:37.5, attributes:["A":0.0, "B":1.0]),
        (value:38.0, attributes:["A":0.2, "B":0.5]),
        (value:38.5, attributes:["A":0.5, "B":0.2]),
        (value:39.0, attributes:["A":0.8, "B":0.0]),
        (value:39.5, attributes:["A":1.0, "B":0.0]),
        (value:40.0, attributes:["A":1.0, "B":0.0]),
    ],
    "VARIATION":[
        (value:0.0, attributes:["A":0.0, "B":1.0]),
        (value:2.0, attributes:["A":0.2, "B":0.8]),
        (value:5.0, attributes:["A":0.5, "B":0.5]),
        (value:8.0, attributes:["A":0.8, "B":0.2]),
        (value:10.0, attributes:["A":1.0, "B":0.0]),
    ]
]

最佳答案

这里的问题是 Swift 编译器在推导集合的类型时非常慢。如果您将类型明确化,Swift 编译器将不必花费任何时间来推导它。试试这个:

let sets: [String:[(value: Double, attributes:[String:Double])]] = [
    "TEMPERATURE":[
        (value:37.0, attributes:["A":0.0, "B":0.2]),
        (value:37.5, attributes:["A":0.0, "B":1.0]),
        (value:38.0, attributes:["A":0.2, "B":0.5]),
        (value:38.5, attributes:["A":0.5, "B":0.2]),
        (value:39.0, attributes:["A":0.8, "B":0.0]),
        (value:39.5, attributes:["A":1.0, "B":0.0]),
        (value:40.0, attributes:["A":1.0, "B":0.0]),
    ],
    "VARIATION":[
        (value:0.0, attributes:["A":0.0, "B":1.0]),
        (value:2.0, attributes:["A":0.2, "B":0.8]),
        (value:5.0, attributes:["A":0.5, "B":0.5]),
        (value:8.0, attributes:["A":0.8, "B":0.2]),
        (value:10.0, attributes:["A":1.0, "B":0.0]),
    ]
]

关于带有字典的 Swift Playground 太慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33310855/

相关文章:

swift - 为什么 Swift Playgrounds 不显示 View 的转换?

swift - 无法使用类型 'Int' 的参数列表调用类型 '(Number)' 的初始值设定项

swift - 如何在 Xcode 6.1 的 Swift 中使用 NSURL?

swift - 类型没有成员

ios - 解析 JSON 并使用 Realm 保存

javascript - 如何使用 Swift 加载 javascript 后获取页面的 HTML 源代码

swift - 从 UIColor 获取色调会产生错误的结果

random - 如何在 Swift 中播种随机数生成器?

swift - "Use of Unresolved Identifier"函数返回错误

ios - WatchKit:什么是 "Kermit",这个控制台日志语句是什么意思?