iOS开发系列--Swift语言分析.doc

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
iOS开发系列--Swift语言分析

iOS开发系列--Swift语言 2015-08-10 12:09 by KenshinCui, 26622 阅读, 57 评论, 收藏, 编辑 概述 Swift是苹果2014年推出的全新的编程语言,它继承了C语言、ObjC的特性,且克服了C语言的兼容性问题。Swift发展过程中不仅保留了ObjC很多语法特性,它也借鉴了多种现代化语言的特点,在其中你可以看到C#、Java、Javascript、Python等多种语言的影子。同时在2015年的WWDC上苹果还宣布Swift的新版本Swift2.0,并宣布稍后Swift即将开源,除了支持iOS、OS X之外还将支持linux。 本文将继续iOS开发系列教程,假设读者已经有了其他语言基础(强烈建议初学者从本系列第一章开始阅读,如果您希望从Swift学起,那么推荐你首先阅读苹果官方电子书《the swift programming language》),不会从零基础一点点剖析这门语言的语法,旨在帮助大家快速从ObjC快速过度到Swift开发中。即便如此,要尽可能全面的介绍Swift的语法特点也不是一件容易的事情,因此本文将采用较长的篇幅进行介绍。 创建一个命令行程序如下: import Foundation /** * Swift没有main函数,默认从top level code的上方开始自上而下执行(因此不能有多个top level代码) */ println(Hello, World!) 从上面的代码可以看出: Swift没有main函数,从top level code的上方开始往下执行(就是第一个非声明语句开始执行[表达式或者控制结构,类、结构体、枚举和方法等属于声明语句]),不能存在多个top level code文件(否则编译器无法确定执行入口,事实上swift隐含一个main函数,这个main函数会设置并调用全局 “C_ARGC C_ARGV”并调用由top level code构成的top_level_code()函数); Swift通过import引入其他类库(和Java比较像); Swift语句不需要双引号结尾(尽管加上也不报错),除非一行包含多条语句(和Python有点类似); 数据类型 Swift包含了C和ObjC语言中的所有基础类型,Int整形,Float和Double浮点型,Bool布尔型,Character字符型,String字符串类型;当然还包括enum枚举、struct结构体构造类型;Array数组、Set集合、Dictionary字典集合类型;不仅如此还增加了高阶数据类型元组(Tuple),可选类型(Optinal)。 基础类型 Xcode 从6.0开始加入了Playground代码测试,可以实时查看代码执行结果,下面使用Playground简单演示一下Swift的基础内容,对Swift有个简单的认识: import Foundation var a:Int=1 //通过var定义一个变量 //下面变量b虽然没有声明类型,但是会自动进行类型推断,这里b推断为Int类型 var b=2 var c:UInt=3 let d=a+b //通过let定义一个变量 //下面通过\()实现了字符串和变量相加(字符串插值),等价于println(d=+String(d)) println(d=\(d)) //结果:d=3 //注意由于Swift是强类型语言,a是Int类型而c是UInt类型,二者不能运算,下面的语句报错;但是注意如果是类似于:let a=1+2.0是不会报错的,因为两个都是字面量,Swift会首先计算出结果再推断a的类型 //let e=a+c //Int.max是Int类型的最大值,类似还有Int.min、Int32.max、Int32.min等 let e=Int.max //结果:9223372036854775807 var f:Float=1.0 var g=2.0 //浮点型自动推断为Double类型 var h:String=hello //emoj表情也可以作为变量或者常量,事实上所有Unicode字符都是可以的 var ????=love and apple //两个字符串相加,但是注意不同类型不能相加 var i=h+???? //结果:hello love and apple //布尔类型只有两个值true、false,类似于if语句中的条件只能是布尔类型不能像ObjC一样非0即真 var j:Bool=true //字符类型,同样使用双引号,但是只能是一个字符,如果不指定类型则c默认会推断为字符串(var k:Character=c是字符类型,但

文档评论(0)

wbjsn + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档