我对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 ——
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

文斌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值