声 明
本教程仅用于初学SWIFT同学使用,内容由本人(孤狼)学习过程中笔记编写,本教程使用SWIFT版本为2.0。本教程内容可以自由转载,但必须同时附带本声明,或注明出处。PAEA.CN版权所有。
[时机]
苹果发布SWIFT已经有一段时间了,现在也已经发展到了2.0版本,相对刚开始发布的版本已经较为成熟了,而且也完善了不少.所以这个时候,选择入手SWIFT是个不错的时间.
[能做什么]
说了那么多,还没有说SWIFT到底能做什么.SWIFT就是苹果发明的一种用来替代OC的编程语言.可以用来编写IOS应用和OS X应用(什么?你是来学android的?请出门左转,谢谢).也就是说,一般都是用来开发手机或电脑上的应用的.
[条件]
首先,你要有多余的肾,因为你需要去买一台mac.(傻蛋,我们都是用黑苹果的!)是的,你也可以使用黑苹果,但是可能你不知道的是,黑苹果版本老,类库老,不支持最新的水果设备,以后开发正式版不能用(吧啦吧啦).....你还是自己考虑吧.如果钱多,MBR走起,如果真的手头紧还想学这个,Mini吧,算是最便宜的mac开发设备了.那么问题来了,买什么配置的呢?这里要说说你准备买多少的移动硬盘,要知道苹果的硬盘可是比市场上贵好几倍的,所以一般都是买小容量然后配移动硬盘使用,尤其是喜欢岛国片的童鞋.然后内存,建议最低8GB,低于这个开发确实有点慢,CPU只要不是i3就行了,当前2015/11/30一台mac mini 中等标配在5000大洋,在水果家族中还是能接受的.
[前景]
这个是大家一直在打架的地方,有说OC好,有说SWIFT好的.在这里我们理性分析一下.在资源方面,不得不说OC完胜,他好歹也曾经称霸过IOS,现在找资料也非常的容易.(那我们学毛的SWIFT啊!)是啊,为什么我们要学SWIFT而不是OC呢?这是因为SWIFT是苹果推出的用来代替OC的语言,代替,代替,代替....还不明显吗?人家果果说啦,不想看到OC了,万一哪天一任性Xcode更新后提示不支持OC了呢!哈哈,好了,回来.其实SWIFT确实有他的好处,SWIFT集合了好几种开发语言的精华,所谓集百家长于一身,能不厉害嘛!话说当年在武当山上.....咳咳!我们说到哪了?对了,现在知道为什么要学这个被苹果称为高效、现代、安全,可以提升应用性能,同时降低开发难度的SWIFT了吧.好了最后抄袭一句网上的句子,世界上有5年工作经验的OC,但还没有5年的SWIFTer,如果你学的早,那么你就是最早的一批SWIFTer.
好了,喷了那么多,我们开始学习吧.
说在前头.....
[输出]
不论什么语言,我们都要记得一句经典的问候.Hello World,SWIFT中输出使用print函数,1.0版本中的println已经废除
print("Hello World");
[注释]
注释是所有语言都必须有的功能,不过还好大多数都是一样的.在SWIFT中注释也是分为行注释和段注释2种,不过他有个奇特的就是SWIFT的段注释支持嵌套.
单行注释使用"//"
//print("我是一行无辜的输出");
多行注释使用/* */
/*
这是多行注释
这是多行注释
*/
swift支持嵌套注释,无须担心注释提前结束
/*
下面就是多出来的注释了
/*我外面还有个注释*/
上面是多出来的注释
*/
[分号]
在一些语言中都有必须用分号结尾的习惯,SWIFT不强制使用分号,但是如果一行写多条语句需要使用分号.为了语言习惯及防止错误和利于代码压缩,建议还是使用分号,养成习惯了其实也没啥.
[引号]
在SWIFT中,不能使用单引号来包含内容,在PHP等一些语言中$a='123';与$a="123";是都可以生效的.但是在SWIFT中如果想表示内容必须使用双引号,单引号视为非法.
量...
[变量]
定义一个变量有点类似与javascript,使用var来定义
var a=123;
print(a);
可以给定义的变量指定类型,在变量名称后带上一个:号,然后记得打个空格,再写上类型.就可以定义一个指定类型的变量了
var a: Int=22;
print(a);
[常量]
在SWIFT中定义一个常量要用到let
let a="一天有24小时";
print(a);
同样的,常量也支持指定格式定义.
let a: String="一天有24小时";
需要注意的是,常量一旦定义不能修改哦.
基本数据类型
[整形]
整数范围 min max
var a=Int.min;
var b=Int.max;
var c=UInt.min;
var d=UInt.max;
print(a); //-9223372036854775808
print(b); //9223372036854775807
print(c); //0
print(d); //18446744073709551615
有符号整数Int [系统默认推断类型]
在32位系统中,与Int32位数相同,在64位系统中位数与Int64相同
无符号整数UInt [尽可能的不去使用UInt,除非很有必要]
在32位系统中,与UInt32位数相同,在64位系统中位数与UInt64相同
[浮点数]
浮点类型比整数类型表示的范围更大,可以存储比 Int 类型更大或者更小的数字
Double 表示64位浮点数.
当你需要存储很大或者很高精度的浮点数时请使用此类型.[系统默认推断类型]
Float 表示32位浮点数.
精度要求不高的话可以使用此类型.
[进制]
十进制,没有前缀[默认]
二进制,前缀是:0b
八进制,前缀是:0o
十六进制,前缀是:0x
十进制16 在其他进制中的表示
十进制:16
二进制:0b10000
八进制:0o20
十六进制:0x10
[占位符]
SWIFT允许数字中间添加符号下划线占位符,方便识别.
var a=10;
var b=1_____9; //添加了不影响的下划线
print(a+b); //29
[类型转换]
SWIFT中不同的类型之间不能直接操作,如果需要操作,需要制定转换类型
var a=Int8(2);
var b=Int16(3);
print(a+b); //报错
print(a+Int8(b)); //成功运行
[布尔值]
bool值只有真和假2种值,真为(true),假为(false), SWIFT中判断条件中的真假只能使用bool值
[元组]
把多个值组合成一个复合值,就是元组.这里需要和数组区分开.元组并不是数组,虽然长得很像.
创建一个元组
let a_yz = (404, "Not Found","我是第三个项目");
创建一个含有元素名的元组
var b_yz=(a:"我是a",b:"我是b");
print(a_yz); //(404, "Not Found", "我是第三个项目")
print(b_yz.a); //我是a
分解一个元组,可以单独输出元组中的每一项,如果不需要全部分解,使用_来代替
var (a,b,_)=a_yz;
print(b); //Not Found
也可以使用下标访问的方式来访问元组内部(下标从0开始)
print(a_yz.2); //我是第三个项目
[断言]
其实就是一个返回中断信号的判断操作,如果有其他语言基础,可以理解为if判断,当判断条件为假的时候触发断言.
var a=9;
assert(a < 0,"a小于0了"); // a小于0了
print("过来了"); //上面中断无法输出
小贴士:SWIFT项目中必须有main.swift文件作为入口,可千万别改名字哦.
好了,今天就学到这里,我们下节课再见!