在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
字符串:String都是用String来表示,都是值类型,在传递过程中都会进行拷贝。 计算字符数量 As3: str.length Swift: countElements(str) 数组:ArrayAs3:存数任意数据 var arr:Array=new Array(); var vec:Vector.<String>=new Vector.<String>; Swift:必须存储相同类型的数据,比如都是Int,或者都是String。和As3的Vector类型很像。 var arr:String[]=String[]()
字典:Dictionary同数组一样,AS能中的key和value对类型没有限制。而Swift必须是相同类型的key和value As3 var dict = new Dictionary(); Swift var dict:Dictionary<String,String>= Dictionary<String,String>()
控制流程if for while switch 一个都没少 基本都差不多,比较有意思的是switch Swift中的switch不需要显式的break,而As3则相反 As3 switch(a) { case “eko”: break; case “fancy”: break; } Swift switch(a){ case “eko”: case “fancy”: } As3如果去掉break就会造成代码向下贯通执行两个case分支。而Swift想要向下贯通则需加入fallthrough switch(a){ case “eko”: fallthrough case “fancy”: } Swift的case更加精彩些例如: 多值匹配 case “a”,”b”,”c”,”d”:
区间匹配 case 1...3: 元组匹配 case (0,0): 还能使用where case let (x,y) where x==y: 函数As3 function onSayHi():String { //做些有趣的事情吧 } Swift func onSayHi()->String{ //做点什么呢 } 返回值类型 As3是用冒号“:”,Swift是用一个箭头“->”。两个合体看上去就像两个鸡蛋一根火腿肠:->,竖起来的话看上去像是一根很邪恶的东西呢。 如果无返回值,As3中要写void,Swift可以省略 As3 function onSayHi():void{}
Swift func onSayHi(){} 函数的参数一般情况下两者没什么区别 As3 function onSayHi(name:String):void{}
Swift func onSayHi(name:String){} 如果以为Swift不过如此的话,那就图样图森破了。 在Swift中可以有参数别名。供调用函数时使用,例如 //定义函数 func onSayHi(who name:String){ pringln(“hi \(name)”) } //who 就是参数别名供外部使用,name供函数内部使用 onSayHi(who:”eko”) 通常来说,参数别名从函数的第二个参数开始使用。我偷懒了,别太在意细节。 关于参数,As3是变量,可以重新赋值。而Swift是常量,不可重新赋值。 As3 function onSayHi(name:String):void { name=”fancy”; trace(name); } onSayHi(“eko”) //输出fancy,说明在函数内部,参数name被改变了。 Swift func onSayHi(name:String){ name=”fancy” //直接报错了 } 如果要像As3那样就要在参数名前加前缀var func onSayHi(var name:String){ name=”fancy” } onSayHi(“eko”)//输出 name:fancy 将函数作为参数As3 function onSayHi(name:String):String { return “hello ”+name; } function onSay(name:String,fun:Function) { trace(fun(name)); } onSayHi(“eko”,onSayHi) //输出hello eko,函数onSay将函数onSayHi作为参数使用 Swift func onSayHi(name:String)->String{ return “hello \(name)” } function onSay(name:String,fun:(String)->String){ println(fun(name)) } onSay(“eko”,onSayHi) //输出hello eko 以上可以看出As3中将函数作为参数时只需用一个Function 解决一切问题。而在Swift中需要将参数类型和返回类型都表示清楚: (String)->String //括号中的就是参数类型,箭头后面的就是返回类型。 将函数作为返回类型关键点同上 As3 public function onSayHi(name:String):String { return "hello "+name; } public function onGetFun():Function { return onSayHi; } var fun:Function=onGetFun(); trace(fun("eko")); //输出 hello eko Swift func onSayHi(name:String)->String{ return "hello \(name)" } func onGetFun()->(String)->String{ return onSayHi } var fun:(String)->String=onGetFun() println(fun("eko")) 嵌套函数As3和Swift都很欢快的支持了 闭包As3和Swift都支持
(我感觉它们两个都很萌萌哒,不知道它们今天吃药了没) |
请发表评论