翻译专题提供翻译的最新资讯内容,帮你更好的了解翻译。
    Swift是一门用于iOS和OS X应用开发的新的编程语言,它以C和Objective-C语言为基础,但没有C语言的兼容性约束。Swift采用了安全的编程模式并且添加了能够让编程更加简单、灵活和富有乐趣的现代化特性。Swift是白纸一张,再加上有成熟而且深受喜爱的Cocoa和CocoaTouch框架的支持,意在重新定义软件开发。     Swift的酝酿花费了数年。Apple为了Swift
说明: 1:本文翻译的原文以2015-02-09日更新版本为基准。由于时间和精力有限,后续版本的更新没法继续进行,以后会随着swift语法的更新做增量内容的说明。 2:由于整个翻译量非常庞大,也由于个人的英文水平和技术阅历不足,难免会有纰漏,欢迎斧正。 3:翻译文稿还会继续修正完善。由于本地编辑采用了Markdown编辑器,而图片地址在线编辑不成功。全部的文件在这里。如果想看翻译稿中的图片,翻译稿
Swift导览 第一次用一门新语言编程,通常要在屏幕上打印“Hello,World”。用Swfit,一行就可以搞定: ​println​(​"Hello, world!"​) 如果你写过C或者Objective-C的代码,上面的语法看来是是这么熟悉——在Swift中,这行代码就是一个完整的程序了。你不需要为了输入/输出功能或者字符串处理而导入一个特定的库。写在全局域的代码被当作程序的入口,所以你不
基础 Swift是一个门用于iOS和OS X开发的新语言。但是,Swift的很多内容同C语言、OC语言相似。 Swift提供了C和OC语言的基础类型的自我版本,包括Int表示整型,Double和Float表示浮点数,Bool表示布尔值,String表示文字数据。Swift同时提供了两个强有力的主要的集合类型Array和Dictionary,具体见 集合类型(Collection Type)一章。
基本操作符 操作符就是一个简单的符号或者短语,你可以用他们来检查、改变、组合数据。举例说明,加操作符(+)把两个数字加到一起。更复杂的操作符例子有AND操作符(&&)还有自增操作符++。 Swift支持标准C的大多数操作符而且有若干改进可以避免代码错误。比如赋值操作符(=)不返回一个值,这样就避免了在想要使用比较操作符(==)时错误的使用了等号。算数运算符(+, -, *, /, %)会检测并且不
字符串和字符 字符串是字符的有序集合,比如“hello,world”或者“albatross”。Swift中的字符串用String类型表示,就是一个存储Character类型的集合。 Swfit的字符串和字符是基于Unicode的。创建和操纵字符串的语法是轻量而且易读的,和C很像。字符串拼接使用“+”操作符。 初始化一个空字符串 两种方式:”“或者String() 判断一个字符串是否是空:该字符串
集合类型 Swift提供了三种集合类型,数组、set和字典,用来存放一系列内容。数组顺序存放统一类型的值。set是互不相同值的无序集合。字典也是键值对的无序集合。 Swift中数组、set和字典的键和值的类型是明确的。这就意味着你不能将一个不符合的类型值塞入到集合类型中。也意味着从集合中取到的类型一定是确定的。 Note Swift的数组、set和字典是作为泛型集合的实现的。更多的关于泛型类型和集
控制流 for、while、if、switch和C基本一样 for-in扩展 for Swift的switch比C语言的要强大。swift的case不再默认执行下一case了,这样会避免遗漏break,导致下一case分支被执行;case可以匹配多种类型,可以是一个范围、元组、或者特殊类型。匹配值可以绑定到一个常量或者变量中,这样case可以使用;复杂的匹配条件可以使用where。 for循环 f
函数 函数 函数就是要完成一个特定任务的一坨代码。你可以以函数的作用给一个函数命名,必要的时候这个名字就可以用来调用这个函数。 Swift的标准化函数语法足够用来表述无论是C风格的无参函数,还是复杂的OC风格的具有本地和外部参数的方法。对于简单的函数,参数可以给出默认值;还可以传递in-out参数,就是在函数执行完毕后会被修改的参数。 每个Swift的函数都有类型,类型包括了函数的参数类型和返回值
闭包 闭包是自己自足的功能代码块,能被传递和使用。Swift的闭包和 C语言和OC中的blocks、其他语言中的lambdas 类似。 在闭包的定义上下文环境中,闭包可以捕获任意的常量或者变量。 This is known as closing over those constants and variables, hence the name “closures”. Swift将全部的内存捕捉的
枚举 枚举 枚举定义了一组通用类型的相互有关系的值,在你的代码中可以使用枚举值做到类型安全。 如果你熟悉C语言,你会知道C语言的枚举给每个枚举名字分配了一个整型数字。Swift的枚举更加灵活,不必给每个枚举成员指定值。字符串、字符、整型、浮点型都可以作为初始值(raw Value)给一个枚举的成员赋值。 或者,枚举成员可以被指定任何类型的联合值而且枚举成员的值类型可以各不相同,像其他语言中的uni
类和结构体 类和结构体是常用的、灵活的结构用来组织你的代码。你可以在你的类和结构体内定义属性、方法来增加功能,使用常量、变量和函数的语法是一样的。 不同于其他语言,Swift不要求你去创建单独的接口和实现文件来定制类或者结构体。Swift中,你在单独文件中定义一个类或者结构体,关联到这个类或者结构体的外部接口会自动生效,供其它代码使用。 NOTE 一个类的引用通常被当作一个对象(Object)。然
属性 属性 属性关联数据到特定的类、结构体、或者枚举。存储属性(stored properties)存储了常量或者变量作为一个实例的一部分;计算属性(computed properties)计算(而不是存储)一个值。计算属性可以用在类、结构体和枚举中。存储属性只能用于类和结构体。 存储属性或计算属性和一个特定类型的实例结合在一起。However, properties can also be as
方法 方法是和特定类型结合在一起的函数。类、结构体和枚举都可以i定义一个实例方法,方法中封装了针对给定类型的实例的特定的功能。类、结构体和枚举同样可以定义类型方法,类型方法和类型自身结合在一起。类型方法和OC中的类方法类似。 Swfit中结构体和枚举可以定义方法,与C、OC比较,这是个重大的区别。OC中,类是唯一可以定义方法的类型。Swift中,有更多的选择:类、结构体、或者枚举。 实例方法(In
下标 类、结构体和枚举可以使用下标,用来方便访问一个集合、列表或序列的成员。可以使用下标根据索引设置和获取值,而不需要单独的方法。举例来说,你可以使用someArray[index]来访问一个数组的实例中的元素,也可以使用someDictionary[key]来访问一个字典中的元素。 可以定义单一类型的多个脚本,根据你传递给脚本的索引值的类型会自动选择合适的重载脚本。脚本并不限制只能有一维,可以多
继承 继承 类可以继承另一个类的方法、属性和其他特性。一个继承自其他类的类叫做子类(subclass),被继承的类叫做超类(superclass)。继承是一个基础行为,是类和其他类型不同点,在Swift中。 Swift中的类,可以调用和访问超类的方法、属性和下标,还可以提供上述方法、属性和下标的自身重写版本。Swift会帮助检查确保子类的重载兼容超类的定义。 类中可以给继承的来的属性添加观察者,为
初始化 初始化是准备类、结构体或者枚举的一个实例供使用的过程。这个过程包括给实例上的所有存储属性初始值和实例在使用前必要的操作(setup or initialization)。 实现这个初始化过程通过定义一个构造方法(译者:initializers),构造方法看起来像特殊的方法,可以被调用来创建一个特定类型的新实例。不同于OC的构造方法,Swift的构造方法不返回值。构造方法的主要作用是在类型的
析构 析构 当一个类引用被释放,析构方法(deinitializer )就被调用。使用deinit关键字定义析构方法,和使用init定义构造方法类似。析构方法只对类类型有效。 析构如何工作 当实例不再被需要,Swift会自动释放它们,来释放资源。Swift通过自动引用计数(ARC)来管理实例的内存,就像Automatic Reference Counting描述的一样。在实例不再被需要时多数情况下
自动引用计数 Swift使用自动引用计数(Automatic Reference Counting (ARC))来跟踪和管理app的内存使用。多数情况下,这意味着内存管理由Swift处理,不需要思考如何管理内存。当实例不再被使用了,ARC自动释放它们使用的内存。 然而,少数情况下,ARC需要知道更多的代码片段之间的关系来为你管理内存。本章描述了这些情况并且展示如何让ARC管理你的app所有的内存。
可选类型链 可选类型链(Optional Chaining) 可选类型链是请求和调用可选类型(当前可能为nil)的属性、方法和下标的过程。如果可选类型有值,那么属性、方法或者下标的调用会成功;如果可选类型是nil,那么属性、方法、下标返回nil。多个这样的请求会被链接在一块,如果链上的任意内容是nil,整个链整体会优雅的失败。 NOTE Swift的可选类型链和OC中的nil信息类似,不同的是适用