版权声明:本文为博主原创文章。未经博主同意不得转载。 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. 查看公网IP信息的方法

    有时候我们想知道自己的外网ip,推荐几个好用的方法 windows 用百度搜索“ip”就会显示 用浏览器访问getip.name 或者 ifconfig.me linux 使用curl命令  curl ...

  2. LeetCode OJ--Binary Tree Level Order Traversal II

    http://oj.leetcode.com/problems/binary-tree-level-order-traversal-ii/ 树的层序遍历,和上一道题相比,对结果做一个顺序调整 reve ...

  3. js-浅显基础-正则表达式集

    今天进博客园,忽然发现我也是有粉丝的人啦!!!!!!!!谢谢谢谢关注(爱心爱心) 本来不想做这个笔记的,但是每次都百度我自己都烦死了,所以还是自己整理一下方便我后期使用: 独笑笑不如众笑笑,放轻松点 ...

  4. 理解webpack中的devTool的配置项

    2.1. eval  eval 会将每一个module模块,执行eval,执行后不会生成sourcemap文件,仅仅是在每一个模块后,增加sourceURL来关联模块处理前后对应的关系.在webpac ...

  5. F#周报2019年第21期

    新闻 F#在GitHub上的开发仓库现在变为dotnet/fsharp Ionide 4.0路线图 Fable的五月公告 Visual Studio 2019版本16.1 WinUI 3.0路线图 欢 ...

  6. git上传(本地和远程有冲突时)

    一. 冲突的产生:在上次git同步(上传)之后,本地和远程均有更改 二. 处理 1. 丢弃本地,采用远程: git checkout 冲突文件及其路径 如: git checkout bzrobot_ ...

  7. see

    Description 问从点(0,0)能看到点(0,0)和(n,n)之间的矩形的多少个整数点,看到(x,y)代表点(0,0)和点(x,y)间没有其他整数点,如看不到(2,4)因为中间有点(1,2) ...

  8. Maven依赖机制理解

    假设一个项目需要用到日志组件Log4j,那么有如下方式添加这个组件. 一.传统方式: 1.访问官网https://logging.apache.org/log4j/2.x/download.html, ...

  9. MVC项目引用备注

    新建空的WEB应用 MVC Nuget引用:Microsoft.AspNet.MvcMicrosoft.AspNet.Web.Optimization 可选删除 Microsoft.CodeDom.P ...

  10. OracleCPU使用情况查询

      1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 ...