声明部分翻译文字校对

This commit is contained in:
RockyMyx
2014-06-25 22:23:37 +08:00
parent a3692ef4cf
commit 5cedbddfdd

View File

@ -153,9 +153,9 @@ println("The second number is \(secondNumber).")
你可以在全局,函数内,或者在类和结构体的声明(context)中使用这种形式来声明一个变量。当变量以这种形式 你可以在全局,函数内,或者在类和结构体的声明(context)中使用这种形式来声明一个变量。当变量以这种形式
在全局或者一个函数内被声明时,它代表一个存储型变量。当它在类或者结构体中被声明时,它代表一个存储型变量属性。 在全局或者一个函数内被声明时,它代表一个存储型变量。当它在类或者结构体中被声明时,它代表一个存储型变量属性。
构造器表达式可以 初始化的表达式可以在协议protocol的定义中出现在其他情况下初始化表达式是可选的optional如果没有初始化表达式那么变量定义时必须显示的声明变量类型:type)
和常量声明相比,如果变量名是一个元祖类型,元祖每一项的名字都要和初始化表达式一致。 对于常量的定义如果名字是一个元祖tuple,元祖每一项的`name`都要和初始化表达式`expression`中的相应值一致。
正如名字一样,存储型变量的值或存储型变量属性存储在内存中。 正如名字一样,存储型变量的值或存储型变量属性存储在内存中。
@ -181,7 +181,7 @@ getter用来读取变量值setter用来写入变量值。setter子句是可
但是如果你提供了一个setter语句你也必需提供一个getter语句。 但是如果你提供了一个setter语句你也必需提供一个getter语句。
setter的名字和圆括号内的语句是可选的。如果你写了一个setter名它就会作为setter的参数被使用。如果你不写setter名 setter的名字和圆括号内的语句是可选的。如果你写了一个setter名它就会作为setter的参数被使用。如果你不写setter名
setter的初始名为newValue正如在seter声明速记(shorthand setter declaration)中提到的那样。 setter的初始名为newValue正如在setter声明速记(shorthand setter declaration)中提到的那样。
不像存储型变量和存储型属性那样,计算型属性和计算型变量的值不存储在内存中。 不像存储型变量和存储型属性那样,计算型属性和计算型变量的值不存储在内存中。
@ -211,7 +211,7 @@ setter的初始名为newValue正如在seter声明速记(shorthand setter decl
所有包含监视器的变量声明都必须有类型注释(type annotation)。 所有包含监视器的变量声明都必须有类型注释(type annotation)。
当变量或属性的值被改变时willset和didset监视器提供了一个监视方法适当的回应 当变量或属性的值被改变时willset和didset监视器提供了一个监视方法适当的回应
监视器不会在变量或属性第一次初始化时不会被运行,它们只有在值被外部初始化语句改变时才会被运行。 监视器不会在变量或属性第一次初始化时运行,它们只有在值被外部初始化语句改变时才会被运行。
willset监视器只有在变量或属性值被改变之前运行。新的值作为一个常量经过过willset监视器因此不可以在 willset监视器只有在变量或属性值被改变之前运行。新的值作为一个常量经过过willset监视器因此不可以在
willset语句中改变它。didset监视器在变量或属性值被改变后立即运行。和willset监视器相反为了以防止你仍然 willset语句中改变它。didset监视器在变量或属性值被改变后立即运行。和willset监视器相反为了以防止你仍然
@ -259,7 +259,7 @@ class关键字用来声明类的计算型属性。static关键字用来声明类
> `typealias name` = `existing type` > `typealias name` = `existing type`
当一个类型别名被声明后,你可以在你程序的任何地方使用别名来代替已存在的类型。已存在的类型可以是已经被命名的 声明一个类型别名后,你可以在你程序的任何地方使用别名来代替已存在的类型。已存在的类型可以是已经被命名的
类型或者是混合类型。类型的别名不产生新的类型,它只是简单的和已存在的类型做名称替换。 类型或者是混合类型。类型的别名不产生新的类型,它只是简单的和已存在的类型做名称替换。
查看更多Protocol Associated Type Declaration. 查看更多Protocol Associated Type Declaration.
@ -286,7 +286,7 @@ class关键字用来声明类的计算型属性。static关键字用来声明类
> `statements` > `statements`
> } > }
每个参数的类型都要标明,它们不能被推断出来。初始时函数的参数是常。在这些参数前面添加var使它们成为变量 每个参数的类型都要标明,它们不能被推断出来。初始时函数的参数是常。在这些参数前面添加var使它们成为变量
作用域内任何对变量的改变只在函数体内有效或者用inout使的这些改变可以在调用域内生效。 作用域内任何对变量的改变只在函数体内有效或者用inout使的这些改变可以在调用域内生效。
更多关于in-out参数的讨论参见in-out参数(in-out parameters) 更多关于in-out参数的讨论参见in-out参数(in-out parameters)
@ -349,8 +349,8 @@ c.f(7, y: "hello") // x没有名称y有名称
且必须是最后一个参数。可变参数被作为该基本类型名的数组来看待。举例来讲可变参数int...被看做是int[]。 且必须是最后一个参数。可变参数被作为该基本类型名的数组来看待。举例来讲可变参数int...被看做是int[]。
查看可变参数的使用例子,详见可变参数(variadic parameters)一节。 查看可变参数的使用例子,详见可变参数(variadic parameters)一节。
在参数的类型后面有一个以等号(=)连接的表达式,这样的参数被看做有着给定表达式的初值。如果参数在函数 在参数的类型后面有一个以等号(=)连接的表达式,这样的参数被看做有着给定表达式的初值。如果参数在函数
调用时被省略了,就会使用初始值。如果参数没有胜率,那么它在函数调用是必须有自己的名字.举例来讲, 调用时被省略了,就会使用初始值。如果参数没有省略,那么它在函数调用是必须有自己的名字.举例来讲,
f()和f(x:7)都是只有一个变量x的函数的有效调用但是f(7)是非法的,因为它提供了一个值而不是名称。 f()和f(x:7)都是只有一个变量x的函数的有效调用但是f(7)是非法的,因为它提供了一个值而不是名称。
###特殊方法 ###特殊方法
@ -362,7 +362,7 @@ f()和f(x:7)都是只有一个变量x的函数的有效调用但是f(7)是非
和类型相关而不是和类型实例相关的方法必须在static声明的结构以或枚举内亦或是以class关键字定义的类内。 和类型相关而不是和类型实例相关的方法必须在static声明的结构以或枚举内亦或是以class关键字定义的类内。
###柯里化函数和方法 ###柯里化函数和方法(Curried Functions and Methods)
柯里化函数或方法有着如下的形式: 柯里化函数或方法有着如下的形式:
@ -370,7 +370,7 @@ f()和f(x:7)都是只有一个变量x的函数的有效调用但是f(7)是非
> `statements` > `statements`
> } > }
以这种形式定义的函数的返回值是另一个函数。举例来说,下面的两个声明等价的: 以这种形式定义的函数的返回值是另一个函数。举例来说,下面的两个声明等价的:
```swift ```swift
func addTwoNumbers(a: Int)(b: Int) -> Int { func addTwoNumbers(a: Int)(b: Int) -> Int {
@ -546,8 +546,8 @@ ExampleEnum.D的值会自动增长为6.
一个类只能继承一个父类超类但是可以包含任意数量的协议。这些超类第一次在type-inheritance-clause出现遵循任意协议。 一个类只能继承一个父类超类但是可以包含任意数量的协议。这些超类第一次在type-inheritance-clause出现遵循任意协议。
正如在初始化声明(Initializer Declaration)谈及的那样,类可以有指定和方便的构造器。当你声明任一构造器时, 正如在初始化声明(Initializer Declaration)谈及的那样,类可以有指定(designated)和方便(convenience)构造器。当你声明任一构造器时,
你可以使用requierd变量来标记构造器要求任意子类来重写它。指定类的构造器必须初始化类所有的已声明的属性 你可以使用required变量来标记构造器要求任意子类来重写它。指定类的构造器必须初始化类所有的已声明的属性
它必须在子类构造器调用前被执行。 它必须在子类构造器调用前被执行。
类可以重写属性方法和它的超类的构造器。重写的方法和属性必须以override标注。 类可以重写属性方法和它的超类的构造器。重写的方法和属性必须以override标注。