/**
* 初始swift
1优点 1>安全,采用数据类型推断机制,现在对象指针使用,自动化管理内存使程序更安全
2>流行具有optianal,泛型和原则等现代语言的特性,比OC语言更具有灵动,更接近自然语言
3>强大强大的模式匹配可以写成更加简单,更加直观的代码,
通过变量插值的方式可以更加方便的格式化字符串,也方便用Foudation和UIKit
4>交互性使用playground操场技术来体验新技术,分析问题,做所见即所得的界面原型
5>高效 swift的编译器使用高级的代码分析功能来调优开发者代码,0)"> 6>兼容,swift与OC完全兼容,很容易混编
2缺点
1>swift支持的复杂的数据结构比较有限
2>目前可以使用地方库比较少
3>swift 和OC一样,基于LLVM编译器,使它不可以在android和windows phone上工作
*/
* 关键字
1>用作声明的关键字
class deinit enum extension func import init let protocal static struct subscript
typealias var
2>用作语句的关键字
break case continue default do else fallthrought if in for return switch where while
3>用作表达式和类型的关键字
as dynamicType is new super self Self Type __COLUMN__ __FILE__ __FUCTION__ __LINE__
4>特定上下文中被保留的关键字
associativity didSet get infix inout override mutating none nonmutaing opertor postfix precedence prefix right set unowned unwoned(safe) unwoned(unsafe) weak
willSet
*/
安全(SAFE)现代(MODERN) 强大(POWER)
如果声明时不进行赋值,那么每个类型的变量都有自己的默认值。
例如Double类型的变量,默认值是0。这点与Objective-C、C++和C语言不同,不对变量赋值的话,那么变量的默认值是一个随机数。如果不注意这点,则很容易由此导致Bug的产生。使用Swift语言则可以避免这种情况发生,所以说Swift是类型安全的。
Swift的语法规定,如果case语句不能覆盖所有可能的情况,则必须加default语句来处理其他情况。否则编译不能通过。
这样可以避免由于程序员疏忽,流程没有被switch-case经过处理,而引起的逻辑错误。
我们可以看到Swift中的安全特性确实有助于新手减少Bug和逻辑错误。
但是类似于“变量声明时就有初始值”的特性在JavaScript,C#等多种现代语言中早已实现了。
功能强大
1>有一个特性中是对字符串操作的简化,在下面的代码中,Swfit可以用\(a)的形式,代替C语言中对字符串format操作。大大简化了代码,增加了程序的可读性。2>苹果在新版的Safari和WebKit中增加了一个针对JavaScript的新特性。这个特性可以使用${变量}的符号,代替传统的使用“+”对字符串进行拼接的操作。3> 另一个与功能强大相关的特性是对Unicode的支持。
4>For-in语句的增强。
还可以在For-in中使用“元组”遍历Dictionary
另外用“n…m”的形式表示[n,m]闭区间的语法也可以应用在switch-case语句中:
维基百科上除了有语法糖,还有“语法盐”和“语法糖精”2个概念。分别代表特别难用的语法,和看似很好用但实际有害的语法。比如在Swift beta版中,在for-in语句中可以使用“n..m”语法,表示从n开始,循环m次。例如:
但是在正式版中,这种写法被取消了。因为“n..m”和“n…m”这两种写法太相似了,如果都保留就会引起混淆,降低程序的可读性,成为“语法盐”或者“语法糖精”了。
现代特性。