版权声明:本文为博主原创文章。未经博主同意不得转载。 https://blog.csdn.net/caowenbin/article/details/31418773

        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 ——

我对Swift的几点疑问的更多相关文章

  1. 【自问自答】关于 Swift 的几个疑问

    感觉自己给自己释疑,也是一个极为有趣的过程.这次,我还新增了"猜想"一栏,来尝试回答一些暂时没有足够资料支撑的问题. Swift 版本是:4.0.3.不同版本的 Swift,可能无 ...

  2. swift 一疑问:reduce

    var products = [   Product(name: "Kayak", description: "A boat for one person",p ...

  3. [IOS]《A Swift Tour》翻译(一)

    以下翻译内容为原创,转载请注明: 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/3768936.html 碎碎念... Swift是苹果在WWDC刚发 ...

  4. iOS拍照上传后,在web端显示旋转 Swift+OC版解决方案

    问题描述: 手机头像上传,遇到一个怪现象,就是拍照上传时,手机端显示头像正常,但在web端查看会有一个左旋90度的问题. 并且照片竖怕才会有此问题,横拍不存在. 原因分析: 手机拍照时,用相机拍摄出来 ...

  5. Swift 中范围和区间如何使用?

    虽然现在swift语言已经发展到了2.0版了,但是相信很多学习iOS开发的童鞋仍对swift语言存在各种各样的疑问,今天小编将为大家详细介绍swift中的范围和区间,下面我们一起来看看吧. Range ...

  6. swift学习初步(三)--控制流操作

    在上一篇博客里面,我谈到了swift里面的一些基本类型以及相关的操作,相信你看了之后一定会觉得其实swift也不难嘛.好吧,这篇博客里面要谈的一些高级操作,可能会让你有点头疼了. 好了,废话不多说了, ...

  7. Swift学习初步(一)

    前几天刚刚将有关oc的教程草草的看了一遍,发现oc其实也不像传说的那么难.今天又开始马不停蹄的学习Swift因为我很好奇,到底苹果出的而且想要代替oc的编程语言应该是个什么样子呢?看了网上的一些中文教 ...

  8. Swift Tips - 在 Swift 中自定义下标访问

    Untitled Document.md input[type="date"].form-control,.input-group-sm>input[type="d ...

  9. [Swift系列]001-入门准备

    [引子] 最新的苹果发布会上公布了新的苹果编程语言Swift,并且演示了Xcode 6 Beta的一些新功能. 据苹果公司称,这个新语言开放的API更多,实用起来更方便,总之是值得学习.使用,比C/o ...

随机推荐

  1. inline关键词的使用(转载)

    (一)inline函数(摘自C++ Primer的第三版) 在函数声明或定义中函数返回类型前加上关键字inline即把min()指定为内联. inline int min(int first, int ...

  2. KeyStore和TrustStore

    笔者的这篇文章参考了http://docs.oracle.com/cd/E19509-01/820-3503/ggfgo/index.html KeyStore和TrustStore在很多HTTPS双 ...

  3. UVA 11090 Going in Cycle!! SPFA判断负环+二分

    原题链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...

  4. Android自定义xml解析

    <?xml version="1.0" encoding="utf-8"?> <resources> <Users> < ...

  5. 【JVM】idea启动项目时候 添加jvm启动参数显示详细日志

    -verbose:class

  6. 【报错】项目启动部署时报错:java.lang.NoSuchMethodError

    报错: ================================================================================================ ...

  7. 5.【nuxt起步】-swiper组件

    接下来是一个比较常用,也比较重要的组件 swiper,可以自行搜索 vue swiper,有很多开源组件,我这里就复用之前一个熟悉的, 1.新建component/banner.vue 刷新报错: 要 ...

  8. 每天一个 Linux 命令(16):which whereis locate命令

    which  查看可执行文件的位置. whereis 查看文件的位置. locate   配合数据库查看文件位置.#whereis 和locate是从文件数据库里查找 数据库默认一个星期更新一次,所有 ...

  9. spring 拦截器拦截点的配置

    实用正则org.springframework.aop.support.RegexpMethodPointcutAdvisor 然后 <property name="advice&qu ...

  10. Solaris网络基础

      划分子网: 把大网缩小为若干个小网.修改子网掩码,划分多个网络. 那么如何确定子网的子网掩码和IP地址? 以上你会发现少了6个IP.   Ifconfig e1000g0 down down掉网卡 ...