有没有办法在游乐场尝试时引入“范围”的概念?
假设您要测试类 MyClass 的几个实现,以便声明它,编写一些代码来测试。然后,您决定要将其与另一个版本的MyClass实现进行比较。
重新声明MyClass会产生重新声明错误。
那么我可以让游乐场在不更改班级名称或创建多个游乐场的情况下,将MyClass和相关代码的第一个声明与第二个声明分开处理吗?
感谢
答案 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文件依赖于顺序,并以自上而下的词汇顺序运行。