您的位置:首页 >> APPLE >> 和屌丝一起学SWIFT-SWIFT基础
和屌丝一起学SWIFT-SWIFT基础
[ 孤狼 | 2015-12-01 14:31:24 | APPLE ]

声  明

       本教程仅用于初学SWIFT同学使用,内容由本人(孤狼)学习过程中笔记编写,本教程使用SWIFT版本为2.0。本教程内容可以自由转载,但必须同时附带本声明,或注明出处。PAEA.CN版权所有。


1.jpg


[时机]

        苹果发布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文件作为入口,可千万别改名字哦.


好了,今天就学到这里,我们下节课再见!

 


 

本节代码下载


转载请注明出处:http://gl.paea.cn/apple/content/2015/12/01/80.html