Swift与Objc(传统语言)的异同

前端之家收集整理的这篇文章主要介绍了Swift与Objc(传统语言)的异同前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

本文旨在简明扼要的总结swift语言中与objc传统语言的差异点。帮助自己和大家学习。

一,swift基础语法

1.swift的表达式可以不指定数据类型,因为可以自动推荐数据类型。

例:var a = 10;与var aint = 10;是同义。编译器会根据=后面的数值推断出来。

2.表达式后可不用分号。除非几个表达式连在一块需要;冒号分割。

3.swift中运算符,== 等于,a等于b时返回true,否则false。!=不等于,与==恰恰相反。

===恒等于,ab同引用同一个实例时返回true,否则为false=====含义不同。==是比较两个引用的内容是否是一个实例。!==不恒等于,与===恰恰相反。===和!==一般不用于引用类型之外的其他类型的比较。由于Swift中引用类型只有类,所以===和!==一般只比较类的实例,而结构体,intdouble,枚举等等都是值类型,不能用于比较。但是数据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有了变化。一,在传统语言中如objcCC++java等只能比较离散的单个整数变量。但是swift中的switch可以使用整数,浮点数,字符,字符串和元组类型,而且它的数值可以是离散的也可以是连续的范围。二,swift中的switch语句case分支不需要显示添加break语句,分支执行完成就会执行switch语句。三,在switch中使用范围匹配,如switch 数值 case 90...100case 80..<90: 我们可以看到这个case选择是一个范围区间。追加一点知识...表示闭区间,..<半闭区间。四,使用元组做switch的时候还可以将匹配的值绑定到一个临时的变量和常量,这些常量和变量能够在该分支李使用,被称为值绑定。还可以使用where语句,对条件进行过滤,类似于sql语句中的where字句。例,var student = (id:"1000",name:"李四",age:32,chinesescore:90,Englishscore:91) case_,_,let age,90...100,90...100where age > 0; _,可以忽略元组中对应的那个idname的值。let age就是值绑定,可以在下面用。where age > 0可以过滤掉age>0的值得。90...100对应元组中的chinesescore,第二个90...100对应Englishscore

7.传统的跳转语句有continuebreakreturn,在swift增加fallthroughfallthrough是贯通语句,只能使用在switch中使用,为了额贯通case分支设计的,或者这种语句我们用的很少,但是作为一门编程语言,还是要照顾用户的少数特殊需求。switch中遇到fallthrough默认会执行下一个case,而不是传统的执行完casebreak了。

猜你在找的Swift相关文章