swift和OC的区别
1.swift句尾的分号可以省略,除非你想在一行中写多行代码需要加分号隔开;
2.swift不需要写main函数,程序默认从上往下执行;
3.swift不再有地址的概念;
4.swift不分.h和.m文件,每个类只有一个.swift文件;
5.swift会自动判断数据类型,只区分变量var和常量let;
6.swift强制转换:int(a);
7.整数的数据类型可以通过.min和.max获得最大和最小值;
8.定义类型的别名 语法改变 OC:typedef integer myInteger swift: typealias myInteger=integer;
9.swift里取余操作支持小数,如 4%0.6 = 0.4;
10.swift里true为真,false为假,而OC里非0即是真;
11.swift的赋值运算符没有返回值;
12.swift可以多对多赋值,如 let(a,b)=(3,4);
13.swift的循环语句中必须加{},就算只有一行代码也要加;
14.swift的switch case语句可以跟各种数据类型,如浮点数,字符串, 并且里面不用写break;
15.swift有范围运算符,如a...b表示[a,b], a..<b表示[a,b),而且可以直接写在for-in循环中;
16.swift独有移除运算符&+, &-,&*,&/,&%;
17.swift独有元组类型,如 var point = (x:0,y:64), 取出x:point.x = 0, 取出y:point.1(或者point.y)=64,初始化的时候可以用下划线省略不需要的元素,如var point = (5, _);
18.swift中,switch语句使用元组类型时,可以用类似SQL语句的语法 添加过滤条件
switch point {
case let(a,b) where a == b:
printIn("a等于b");
}
19.swift的外部参数名:func Sum(numone num1:Int,numtwo num2:Int) -->Int{},调用时写 Sum(numberone:1, numbertwo:2);或者让外部参数名和内部参数名一样:func Sum(#num1:int, #num2:int) -->Int{},调用时写Sum(num1:1, num2:2);
20.swift中函数的默认参数值:func addPerson(name:String, age:Int=27) -->string{},设置默认年龄为27,调用时:addPerson("dingding"),如果想改默认参数,需要这样写:addPerson("dingding",age:33);

浙公网安备 33010602011771号