大家好!如今,xcode6.1终于正式发布。想要学习swift的小伙伴们,猛戳这里下载吧!http://pan.baidu.com/s/1dDjEU6d
如今,swift语言也日趋完善、稳定。我们的《玩儿转swift》课程在慕课网的大力支持下,也终于修订完成。现在,大家在慕课网上看到的课程视频,和以前不一样了哦~所有的语法都已经根据正式版内容进行了修订,欢迎大家学习!友情提醒:全新加入了两个小节的内容:《3-2 nil聚合运算符》和《4-4 String.Index和Range》,值得学习过前六章的同学们再看一看哦,一定会有收获滴~
为了让大家更加好地从swift beta版本的语法过渡到正式版本,在这里也为大家提供一份简单的文档。让我们一起来看一看,swift语法都改变了什么?(由于beta版本众多,以下说明统一标识为beta版本,但是一些修改在后期beta版本已经完成,不做特殊说明)
1)
beta版本的半闭区间运算符为..(两个点),这也太容易和闭区间运算的...(三个点)混淆了!
正式版本中,半闭区间运算符修改为..<。其实,最后一个<加德也很有道理,代表小于最后一个值。
2)
正式版全新添加了nil聚合运算符,请猛戳《3-2 nil聚合运算符》这里学习!
3)
在beta版本中,对于可选型,比如一个a:Int!,其返回值可以看作是Bool值,因此,if a{...}的写法是可以的,
但是在正式版本中,可选型的返回值只能是具体的值或者是nil,因此不能使用if直接做判断,上述逻辑需要写作:if a!=nil {...}
4)
beta版本中,对于一个String str和一个Character c,可以直接使用str += c的方式将c放在str的末尾。
在正式版本中,这样的方法不可以了,可以使用如下方式:
a. 将c强制类型转换为String类型:str += String(c)
b. 使用封装在String中的函数append: str.append(c)
Swift果然是一个强类型语言!事实上,这个改变对后续的数组也有影响!
6)
beta版本中,String拥有uppercaseString和lowercaseString两个属性,
在正式版本中,这两个属性不再是String的属性,而是作为需要引入Foundation(当然啦,默认开启一个playground引入的UIKit已经包含了Foundation)才可以调用的属性。所以,这两个属性原先在4-2中作介绍,现在改在了4-3中
7)
beta版本中,在字符串中写一个unicode符号的方法为\Uxxxxxx,
正式版本中,修改为\u{xxxxxx}。对于这个特性,我们这套课程没有重点介绍,但是在一个例子中用到了,所以在这里提及一下。
8)
String的使用和以前的NSString和NSMutableString结合得更紧了,因此之前课程提到的bridgeToObjectiveC不再需要了。更多字符串相关内容,请猛戳新录制的小节《String.Index和Range》进行学习!
9)
beta版本中,可以使用 Int[] 声明一个整数数组类型,
在正式版本中,修改为 [Int] 的形式。
以前的 Array<Int> 这样的生命方式没有改变,
不过,对于字典来说,增加了一个和数组类似的类型表达方式。以前只能使用Dictionary<Int:String>来表达一个键的类型是Int,值的类型是String的字典。
在正式版本中,我们可以使用[Int:String],简洁了很多,而且语意很清晰:)
10)
beta版本中,字典为什么不能有isEmpty属性?莫名其妙!
正式版本中,请大家尽情使用字典的isEmpty判断当前字典是否为空!
11)
beta版本中,对于一个变量数组arr,如果想给他添加一个元素item,可以使用 arr += item
但是在正式本本中,类似String的修改,可以使用以下两种方式:
a. 将item包装在一个数组中,使得是两个数组的相加:arr += [item]
b. 使用封装在Array中的函数append: arr.append(item)
12)
beta版本中,将数组类型声明成let以后,不可以改变数组的长度,却可以改变已有数组元素的内容。我当时一直以为这是苹果的一个bug,但是发现当时swift官方文档上竟然针对这个特性有专门一个小节的介绍!@#¥%……&×()为此,我特意录制了当时的5-5这一小节,来说明这个奇特的设定。
在正式版本中,这一特性不存在了!let就是常量,使用let声明的数组不能修改任何内容。这样才符合用户预期嘛!不过我们的5-5经过全新录制,大家可以看成是一个小复习哦~
当然了,swift语言在我们没有讲解的范围之外还有很多变动,由于我们这个课程明(wu)智(chi)地停止更新了,所以没有影响到我们:)从现在开始,大家可以用全新的、成熟的、稳定的swift,一起好好玩耍啦!
最新课程更新,即将奉上。大家有任何问题,也欢迎和我交流。我的个人网站:liuyubobobo.com。期待我们一起成长!大家加油!