从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:0
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 1...5 {
- 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 )
字符串:String
都是用String来表示,都是值类型,在传递过程中都会进行拷贝。
计算字符数量
As3:
- str.length
Swift:
- countElements(str)
数组:Array
As3:存数任意数据
- 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都支持
类
As3
Swift中似乎没有包,包路径的概念。因而显得简洁的多。
package { public class ShuaiGe { } }
Swift类
class ShuaiGe{ }
类的构造
As3有构造函数,Swift有构造器,不同的是Swift可以有多个同名但是不同参数的构造器
As3
class ShuaiGe { function ShuaiGe(){}//构造函数 }
Swift
class ShuaiGe{ init(){} //构造器 init(name:String){} //构造器 init(age:Int){} //构造器 }
类的析构
析构函数在实例被销毁前调用。As3无,Swift有
Swift
deinit{ // 执行析构过程 }
类的继承
As3使用关键字extends Swift使用冒号
As3
package { public class Eko extends Shuaige { } }
Swift
class Eko:ShuaiGe{ }
类的属性
关于类的属性,Swift就比As3精彩的多了例如@lazy延迟存储,属性监视器willSet在设置新值之前调用。didSet在新值设置之后调用。
类的静态属性
As3使用关键字static
Swift类使用class关键字,结构体和枚举使用static关键字
类属性的覆盖
都使用override关键字,能够对方法和属性进行覆盖。
Swift使用@final能够防止覆盖例如
@final var, @final func, @final class func 以及 @final sunscript
As3
使用final关键字在class前或者后表示不能继承。使用 private关键字能表示属性或方法私有而不能被覆盖
类的实例本身
As3 使用this关键字,Swfit使用self关键字。
自动引用计数器
As3和Swift都是使用计数器来跟踪和管理内存,进行垃圾回收。
相关推荐
Swift开发指南.azw3
在本资料中,我们有两个版本的Swift编程指南:Swift4的官方英文版和Swift3的权威中文版。 Swift4是Swift的第四个主要版本,它在Swift3的基础上进行了改进和优化。虽然两个版本在语法上差异不大,但Swift4引入了一些...
Swift版的3D Touch技术是苹果公司在iOS 9中引入的一种增强交互方式,它为iPhone用户提供了一种全新的、更深层次的触控体验。通过压力感应,3D Touch不仅增加了快捷菜单(Quick Actions)和Peek & Pop功能,还使得...
Swift进阶 Swift4Swift进阶 Swift4Swift进阶 Swift4Swift进阶 Swift4Swift进阶 Swift4Swift进阶 Swift4Swift进阶 Swift4Swift进阶 Swift4Swift进阶 Swift4Swift进阶 Swift4Swift进阶 Swift4Swift进阶 Swift4Swift...
iOS开发 最新语言swift3 中文版本
Swift 3d V6 汉化 Swift 3d V6 汉化 Swift 3d V6 汉化 Swift 3d V6 汉化
Swift3是Swift的第三个主要版本,带来了一些重要的语法变化和改进。本篇文章将深入探讨Swift3中如何构建和解析模型。 在Swift3中,模型对象是用来封装应用程序的数据的。这些数据可以来自数据库、网络API或其他数据...
4. **进度保存**:当应用程序退出或者被系统杀死时,Swift-ASDownload会自动保存当前的下载进度,下次启动时可以继续之前未完成的下载,保证了用户体验的连续性。 5. **下载数量控制**:为了优化网络使用和防止过度...
《iOS 10 in Swift 3》是一本深入探讨iOS开发的专业书籍,专注于利用Swift 3编程语言在iOS 10平台上构建应用程序。Swift 3是Apple推出的一种现代化、安全且强大的编程语言,旨在简化iOS、macOS、watchOS以及tvOS的...
Intermediate iOS Programming with Swift: iOS 10 and Swift 3 by Simon Ng English | 21 Jun.... As you follow the book to build apps, you will learn the new features of Swift and iOS SDK along the way.
Learning Swift 3rd English | 30 Apr. 2018 | ISBN: 149198757X | 500 Pages | EPUB | 13.58 MB
3. **类型安全性**:Swift 3.0增强了类型系统,提高了错误处理的能力,减少了隐式转换,降低了程序出错的可能性。 4. **函数和方法的改进**:函数签名的重构,以及引入了泛型参数和参数标签的改进,使得函数和方法...
Swift3D Flash3D的好帮手,界面干净清爽,简单明了,教程讲解细致入微,令你一看就会。
3. **泛型**:Swift的泛型允许编写可重用的代码,这些代码可以处理多种数据类型。泛型在函数、类、结构体和枚举中都有应用。 4. **协议与扩展**:Swift中的协议类似于接口,定义了一组方法和属性的规范。扩展则可以...
### Swift 3与Xcode 8的关键更新及变化 #### 一、Swift 3的核心变更 Swift 3 是苹果为了使 Swift 更加现代化并更好地与其他框架兼容所做的一次重大更新。这一版本不仅对语法进行了调整,还改进了对 Cocoa Touch ...
This code-intensive, practical guide walks you through Swift best practices as you learn the language, build an application, and refine it using advanced concepts and techniques. Organized for easy ...
Swift进阶
Swift 3 Object Oriented Programming - Second Edition by Gastón C. Hillar English | 6 Mar. 2017 | ISBN: 1787120392 | 254 Pages | EPUB/PDF (conv) | 32.1 MB Key Features Leverage the most efficient ...
"pw-swift-core-SRU2017-7.9.3" 是一个开源的第三方Java库,专门设计用于解析和处理银行间的SWIFT报文。这个库的主要功能是为开发者提供工具,以便他们能够有效地封装和解析SWIFT标准化的金融通信格式。SWIFT(环球...