2015-05-11 90 views
1

是有办法引进的“范围”的概念,而在操场上不断尝试新东西出来?复制声明中迅速playgground

假设你想测试一个类的几个实现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() 
+0

嘿空速,这是最好的解决方案(破解),但希望更好的东西:)谢谢你的建议,也感谢@Dreaming二进制。 – djeetee