在快速的游戏场地中复制声明

时间:2015-05-11 18:49:59

标签: swift swift-playground

有没有办法在游乐场尝试时引入“范围”的概念?

假设您要测试类 MyClass 的几个实现,以便声明它,编写一些代码来测试。然后,您决定要将其与另一个版本的MyClass实现进行比较。

重新声明MyClass会产生重新声明错误。

那么我可以让游乐场在不更改班级名称或创建多个游乐场的情况下,将MyClass和相关代码的第一个声明与第二个声明分开处理吗?

感谢

2 个答案:

答案 0 :(得分:1)

这有点像黑客攻击,但你可以使用nested types - 声明一个struct唯一的目的就是拥有这种范围:

struct Scope1 {
    class MyClass { }
}

struct Scope2 {
    class MyClass { }
}

let x = Scope1.MyClass()
let y = Scope2.MyClass()

// if you want to quickly switch between using 
// one vs the other
typealias MyClass = Scope1.MyClass
let z = MyClass()

答案 1 :(得分:0)

不,没有。 Playground文件依赖于顺序,并以自上而下的词汇顺序运行。