1.4 认识Playground
什么是Playground?我更愿意称呼其为“训练场”。在这里,可以尽情地使用Swift这门功法来施展各式各样的招式,既可以用来练习Swift,也可以用来实现某个功能然后将其融合到产品当中,还可以设计某一个算法然后观察它的显示结果。可以说,“训练场”让Swift展示了某些脚本语言的特性。图1-2显示了“训练场”的模样。
提示
实际上,Playground只是提供了一个可实时编译运行并展示的交互式开发环境而已,类似于著名的REPL。因此,Swift并不是一门解释型语言,仍然还是一门编译型语言,这项功能完全借助于强大的LLVM编译器的能力。不过,目前Playground仅仅只支持Swift语言,但是国外开发者Krzysztof Zabocki开发出了一个可以运行Objective-C语言的Playground,感兴趣的读者可以前往他的Github上下载:https://github.com/krzysztofzablocki/KZPlayground。
在界面的右侧区域,可以实时地看到常量、变量的值、打印的内容以及循环次数,等等,这就是所谓代码版的“所见即所得”。
将鼠标指向Playground中所显示出来的值,便可以看到界面右侧出现了一只小眼睛和一个白色的圆圈,小眼睛就是“Quick Look”(快速查看),即可以快速查看其完整的值,如图1-2所示,点击“快速查看”之后,从小眼睛的部位弹出了一个小对话框,对话框里面显示了该变量(常量)的值。
图1-2 Playground快速查看功能
白色的圆圈就是“Show Result”(显示结果),点击白色圆圈可以将对话框中显示的结果值嵌入到代码片段里面,如图1-3所示。这个功能大大地提升了Playground的可视化程度,使其变得更加有趣。再次点击白色圆圈,就可以将这个结果框从代码中移除,同样,在结果框的左上角点击关闭按钮也是可以移除结果的。
图1-3 将结果显示在代码片段中
这里我们实现了一个循环次数为100次的循环结构,每次循环,i的值就自增1,然后用变量num来显示和记录这个值。单击“快速查看”或“显示结果”按钮,就会看到一个蓝色的“一次函数”,如图1-4所示。这个是以时间为横坐标轴显示的图形,主要是显示在循环体当中,借助这个功能,可以轻松查看在循环过程中变量值的变化情况。在这个结果框的右上角还存在三个按钮,分别是让其显示图表(Gragh),还是显示当前值(Current Value),抑或是显示全部的值,如图1-5所示。
图1-4 循环图表显示
图1-5 显示效果选择
Playground的下方则是时间控制栏,通过它可以调整当前时间,只要是对受时间控制的函数、方法体有效。右下角则是指定Playground运行最高层(top-level)代码的时间。
总之,Playground是一个很有意思的东西,用它来练习Swift是再好不过的了,不过Playground仍然有一些限制,比如说Playground无法释放内存、性能受到极大的限制等问题。