我对Swift的几点疑问

        Swift自问世以来,就获得了全球开发者的青睐,可以说集万千庞爱于一身了,尤其是WWDC上的性能展示,更是让开发者为之振奋。但是,我却一直有几个疑问没有弄清,不知您的看法如何。

        Swift到底是编译型的,还是解释型的?我们知道Objective-C是编译型的,源程序被编译成机器码才能运行。我们也知道Python是解释型的,由解释器负责解释执行,可以边写源码边获得解释的结果。从Xcode 6的Playgound来看,Swfit应该是解释型语言,可以边写代码边看到执行结果。但是,作为解释型语言的话在性能上不太可能会领先于编译型的Objective-C那么多,即使对编译器进行了优化也很难拉开较大的差距。感觉Playgound像是IDE专门为Swift提供的一个工具,为了在语言使用上能有些交互性,该工具可以解释正在编写的代码,从而形成解释执行的交互式结果展现。因此,从Swift的性能来看,它还是编译型语言。

        Swift到底是面向过程的还是面向对象的?这个从Apple的The Swift Programming Language里找到了答案,既支持面向过程编程,也支持面向对象编程。不过在对其class学习以后,没有发现Java、C#等面向对象语言的访问修饰符,可能没有深入,还没领会到具体的用法上如何做到更好的封装和信息隐藏。

        Swift是静态语言还是动态语言?简单的看,Swift通过var和let声明变量和常量,不需要指定数据类型,非常像JavaScript等动态语言。但是仔细学习可以发现,其实Swift是静态语言,而且是类型安全的静态语言,即使是Int和Double也需要显示转换。那么不需要数据类型的声明其实就是语法糖了,是编译器做的类型推断,一旦类型确定就无法再改变了。所以Swift应该还是静态语言。

        我想通过继续学习和使用Swfit,还会遇到更多问题,但这才是语言学习的乐趣。

——欢迎转载,请注明出处 http://blog.csdn.net/caowenbin ——

你可能感兴趣的:(Objective-C,swift,语言)