本文旨在简明扼要的总结swift语言中与objc传统语言的差异点。帮助自己和大家学习。
一,swift基础语法
1.swift的表达式可以不指定数据类型,因为可以自动推荐数据类型。
例:var a = 10;与var a:int = 10;是同义。编译器会根据=后面的数值推断出来。
2.表达式后可不用分号。除非几个表达式连在一块需要;冒号分割。
3.swift中运算符,== 等于,a等于b时返回true,否则false。!=不等于,与==恰恰相反。
===恒等于,a与b同引用同一个实例时返回true,否则为false。===与==含义不同。==是比较两个引用的内容是否是一个实例。!==不恒等于,与===恰恰相反。===和!==一般不用于引用类型之外的其他类型的比较。由于Swift中引用类型只有类,所以===和!==一般只比较类的实例,而结构体,int,double,枚举等等都是值类型,不能用于比较。但是数据Array是结构体的例外,他虽然是结构体,但他可以使用===和!==进行比较
4.在objc中使用NSLog(@"");打印输出便于调试,但是在swift中使用println(“\()”)。
5.在swift中引入了新的数据结构元组。元组是关系数据库中的基本概念,元组表中的一条几率,每列就是一个字段。因此在二维表里,元组也成为记录。
var student = ("1000","李四")和 var student = (id:"1000",name:"李四")这两段话都表示声明并初始化了元组类型的studnt变量。第一种可以使用.语法来获取字段,student.0访问id第一个字段。第二中写法可以通过字段名字来访问其中内容。student.id来访问id字段。
6.在控制语句中分支语句的switch有了变化。一,在传统语言中如objc,C,C++,java等只能比较离散的单个整数变量。但是swift中的switch可以使用整数,浮点数,字符,字符串和元组类型,而且它的数值可以是离散的也可以是连续的范围。二,swift中的switch语句case分支不需要显示的添加break语句,分支执行完成就会执行switch语句。三,在switch中使用范围匹配,如switch 数值 case 90...100:case 80..<90: 我们可以看到这个case选择是一个范围区间。追加一点知识...表示闭区间,..<半闭区间。四,使用元组做switch的时候还可以将匹配的值绑定到一个临时的变量和常量,这些常量和变量能够在该分支李使用,被称为值绑定。还可以使用where语句,对条件进行过滤,类似于SQL语句中的where字句。例, var student = (id:"1000",name:"李四",age:32,chineseScore:90,EnglishScore:91) case(_,_,let age,90...100,90...100)where age > 0; _,_,可以忽略元组中对应的那个id和name的值。let age就是值绑定,可以在下面用。where age > 0可以过滤掉age>0的值得。90...100对应元组中的chineseScore,第二个90...100对应EnglishScore。
7.传统的跳转语句有continue,break,return,在swift增加了fallthrough,fallthrough是贯通语句,只能使用在switch中使用,为了额贯通case分支设计的,或者这种语句我们用的很少,但是作为一门编程语言,还是要照顾用户的少数特殊需求。switch中遇到fallthrough默认会执行下一个case,而不是传统的执行完case就break了。
标签:语句,case,异同,Swift,switch,元组,Objc,swift,id From: https://blog.51cto.com/u_15952281/6042135