当AS3遇见Swift
从Hello开始
As3
trace(“Hello Eko”)
Swift
println(“Hello Eko”)
挺象,有点隔壁王叔叔的意思。
常量和变量
As3
public var str1:String=”eko”//变量 public const str2:String=”eko”//常量
Swift
var str1:String=”eko” //变量 let str2:String=”eko” //常量
在swift中没有public private protected等修饰符号。同as3一样,swift中类型(:String,:Int)的标注也不是必须的。Swift可以推导出类型。
注释
As3与Swift是一样的
//我是一行注释 /* 我是多行注释 */
分号
A3和Swift一样,都不强制要求在每条语句的结尾使用分号
整数
As3 提供了int和uint类型。其中int是32位带符号的整数。而unit是32位无符号整数。
Swift提供了Int和Uint类型。在32位平台上,Int长度为32位(Int32),在64位平台上则是64位(Int64)。Uint同Int。
浮点
As3,只有Number(53位)
Swift有Double(64位)和Float(32位)
布尔值
As3 中是Boolean
Swift 中是Bool
它们的布尔值有相同的常量true和false
元组
定义:把多个值组合成一个复合值。元组内的值可以使任意类型,并不要求是相同类型
As3 没有
Swift有
可选类型(optionals)
定义:如果有值就返回当前值,如果没有值就返回nil
这是Swift中独有的
if语句
As3的条件判断需要加”()”括号
if(name==”eko”){}
Swift可以省略
if name==”eko” {}
默认值
As3
int:o
unit:0
String:null
Number:NaN
Array:null
Object:null
Boolean:flase
Swift 没有默认值,只有当类型被声明为可选类型的时候,会被自动设置为nil
var eko:String?//加了问号(?)就变成可选类型了
那么在eko被赋值之前就是nil
赋值运算符
As3与Swift都使用“=”等号
数值运算
加减乘除等(+,-,*,/)AS3和Swift在这方面倒没什么不同。包括字符串的拼接也一样
“hello ”+”eko”。如果有一个变量str=“eko”,那么他怎么和字符串拼接呢。
As3
“hello ”+str
Swift
“hello \(str)”
区间运算
As3无
Swift有
例子:
for index in ... { println("\(index) * 5 = \(index * 5)") } // 1 * 5 = 5 // 2 * 5 = 10 // 3 * 5 = 15 // 4 * 5 = 20 // 5 * 5 = 25
这里面1…5就是一个闭区间
逻辑运算
相同
逻辑非( !a )
逻辑与( a && b )
逻辑或( a || b )