This commit is contained in:
wuxing
2014-06-14 17:25:03 +08:00
parent 1c10a65bd3
commit a516af6a53
12 changed files with 36 additions and 36 deletions

View File

@ -28,7 +28,7 @@
新的命名好的枚举,结构,类和协议类型。你也可以使用一条声明来延长一个已经存在的命名好的类型的行为。或者在你的
程序里引入在其他地方声明的符号。
在swift中大多数声明在某种意义上讲也是执行或同事声明它们的初始化定义。这意味着因为协议和们的成员不匹配,
在swift中大多数声明在某种意义上讲也是执行或同事声明它们的初始化定义。这意味着因为协议和们的成员不匹配,
大多数协议成员需要单独的声明。为了方便起见也因为这些区别在swift里不是很重要声明语句同时包含了声明和定义。
>GRAMMAR OF A DECLARATION
@ -71,7 +71,7 @@
##模块范围
模块范围定义了对模块中其他源文件可见的代码。待改进在swift的源文件中最高级别的代码由零个或多个语句
声明和表达组成。变量,常量和其他的声明语句在一个源文件的最顶级被声明,使得们对同一模块中的每个源文件都是可见的。
声明和表达组成。变量,常量和其他的声明语句在一个源文件的最顶级被声明,使得们对同一模块中的每个源文件都是可见的。
>GRAMMAR OF A TOP-LEVEL DECLARATION
@ -122,7 +122,7 @@
当常量的值被给定后,常量就将常量名称和表达式初始值不变的结合在了一起,而且不能更改。
这意味着如果常量以类的形式被初始化,类本身的内容是可以改变的,但是常量和类之间的结合关系是不能改变的。
当一个常量被声明为全局变量,它必须被给定一个初始值。当一个常量在类或者结构体中被声明时,被认为是一个常量
当一个常量被声明为全局变量,它必须被给定一个初始值。当一个常量在类或者结构体中被声明时,被认为是一个常量
属性。常量并不是可计算的属性因此不包含getters和setters。译者注getters和setters不知道怎么翻译待改进
如果常量名是一个元祖形式,元祖中的每一项初始化表达式中都要有对应的值
@ -168,7 +168,7 @@
var variable name: type = expression
你可以在全局,函数内,或者在类和结构体的声明(context)中使用这种形式来声明一个变量。当变量以这种形式
在全局或者一个函数内被声明时,它代表一个存储型变量。当在类或者结构体中被声明时,代表一个存储型变量属性。
在全局或者一个函数内被声明时,它代表一个存储型变量。当在类或者结构体中被声明时,代表一个存储型变量属性。
构造器表达式可以被
@ -190,8 +190,8 @@
}
你可以在全局,函数体内或者类,结构体,枚举,扩展声明的上下文中使用这种形式的声明。
当变量以这种形式在全局或者一个函数内被声明时,它代表一个计算型变量。当在类,结构体,枚举,扩展声明的上下文
中中被声明时,代表一个计算型变量属性。
当变量以这种形式在全局或者一个函数内被声明时,它代表一个计算型变量。当在类,结构体,枚举,扩展声明的上下文
中中被声明时,代表一个计算型变量属性。
getter用来读取变量值setter用来写入变量值。setter子句是可选择的只有getter是必需的你可以将这些语句
都省略,只是简单的直接返回请求值,正如在只读计算属性(read-only computed properites)中描述的那样。
@ -219,7 +219,7 @@ setter的初始名为newValue正如在seter声明速记(shorthand setter decl
你可以在全局,函数体内或者类,结构体,枚举,扩展声明的上下文中使用这种形式的声明。
当变量以这种形式在全局或者一个函数内被声明时,监视器代表一个存储型变量监视器;
在类,结构体,枚举,扩展声明的上下文中被声明时,监视器代表属性监视器。
在类,结构体,枚举,扩展声明的上下文中被声明时,监视器代表属性监视器。
你可以为适合的监视器添加任何存储型属性。你也可以通过重写子类属性的方式为适合的监视器添加任何继承的属性
(无论是存储型还是计算型的),参见重写属性监视器(overriding properyt observers)。
@ -228,7 +228,7 @@ setter的初始名为newValue正如在seter声明速记(shorthand setter decl
所有包含监视器的变量声明都必须有类型注释(type annotation)。
当变量或属性的值被改变时willset和didset监视器提供了一个监视方法适当的回应
监视器不会在变量或属性第一次初始化时不会被运行,们只有在值被外部初始化语句改变时才会被运行。
监视器不会在变量或属性第一次初始化时不会被运行,们只有在值被外部初始化语句改变时才会被运行。
willset监视器只有在变量或属性值被改变之前运行。新的值作为一个常量经过过willset监视器因此不可以在
willset语句中改变它。didset监视器在变量或属性值被改变后立即运行。和willset监视器相反为了以防止你仍然
@ -670,7 +670,7 @@ protocol-property-declaration → variable-declaration-head­variable-name­type
###协议方法声明
协议声明了一致性类型必须在协议声明的主体里通过引入一个协议方法声明来实现一个方法.
协议方法声明和函数方法声明有着相同的形式,包含如下两条规则:们不包括函数体,你不能在类的声明内为们的
协议方法声明和函数方法声明有着相同的形式,包含如下两条规则:们不包括函数体,你不能在类的声明内为们的
参数提供初始值.举例来说,符合的类型执行协议必需的方法。参见必需方法一节。
使用关键字class可以在协议声明中声明一个类或必需的静态方法。执行这些方法的类也用关键字class声明。
@ -753,7 +753,7 @@ getter语句可以选择是否包含setter语句。
以一个将所有类属性完全初始化的指定构造器的调用作为结束。便利构造器不能调用超类的构造器。
你可以使用requierd关键字将便利构造器和指定构造器标记为每个子类的构造器都必须拥有的。因为指定构造器
不被子类继承,们必须被立即执行。当子类直接执行所有超类的指定构造器(或使用便利构造器重写指定构造器)时,
不被子类继承,们必须被立即执行。当子类直接执行所有超类的指定构造器(或使用便利构造器重写指定构造器)时,
必需的便利构造器可以被隐式的执行,亦可以被继承。不像方法,下标脚本那样,你不需要为这些重写的构造器标注
overrride关键字。

View File

@ -17,7 +17,7 @@
模式pattern代表了单个值或者复合值的结构。例如元组`(1, 2)`的结构是逗号分隔的,包含两个元素的列表。因为模式代表一种值的结构,而不是特定的某个值,你可以把模式和各种同类型的值匹配起来。比如,`(x, y)`可以匹配元组`(1, 2)`,以及任何含两个元素的元组。除了将模式与一个值匹配外,你可以从合成值中提取出部分或全部,然后分别把各个部分和一个常量或变量绑定起来。
在Swift中模式出现在变量和常量的声明在它们的左侧`for-in`语句和`switch`语句(在们的case标签中。尽管任何模式都可以出现在`switch`语句的case标签中但在其他情况下只有通配符模式wildcard pattern标识符模式identifier pattern和包含这两种模式的模式才能出现。
在Swift中模式出现在变量和常量的声明在它们的左侧`for-in`语句和`switch`语句(在们的case标签中。尽管任何模式都可以出现在`switch`语句的case标签中但在其他情况下只有通配符模式wildcard pattern标识符模式identifier pattern和包含这两种模式的模式才能出现。
你可以为通配符模式wildcard pattern标识符模式identifier pattern和元组模式tuple pattern指定类型注释用来限制这种模式只匹配某种类型的值。
@ -134,7 +134,7 @@
is type
pattern as type
`is`模式匹配一个值如果这个值的类型在运行时runtime`is`模式右边的指定类型(或者那个类型的子类)是一致的。`is`模式和`is`操作符一样,们都进行类型转换,但是抛弃了返回的类型。
`is`模式匹配一个值如果这个值的类型在运行时runtime`is`模式右边的指定类型(或者那个类型的子类)是一致的。`is`模式和`is`操作符一样,们都进行类型转换,但是抛弃了返回的类型。
`as`模式匹配一个值如果这个值的类型在运行时runtime`as`模式右边的指定类型(或者那个类型的子类)是一致的。一旦匹配成功,匹配的值的类型被转换成`as`模式左边指定的模式。