diff --git a/chapter1/01_swift.html b/chapter1/01_swift.html index 4f63e80e..f2425651 100644 --- a/chapter1/01_swift.html +++ b/chapter1/01_swift.html @@ -16,6 +16,8 @@ + + @@ -32,12 +34,12 @@ -
翻译:numbbbbb
diff --git a/chapter1/02_a_swift_tour.html b/chapter1/02_a_swift_tour.html index 5e17bdf6..33d05072 100644 --- a/chapter1/02_a_swift_tour.html +++ b/chapter1/02_a_swift_tour.html @@ -16,6 +16,8 @@ + + @@ -32,12 +34,12 @@ -
校对:yeahdongcn+- + @@ -80,6 +82,9 @@ + + +@@ -97,12 +102,29 @@
- + +
- + About the author +
+ +- + Questions and Issues +
+ + +- + Edit and Contribute +
+ + + + +- 序 @@ -573,7 +595,7 @@
-+ 翻译:numbbbbb
diff --git a/chapter1/chapter1.html b/chapter1/chapter1.html index aa4f0d5a..53c4ee4f 100644 --- a/chapter1/chapter1.html +++ b/chapter1/chapter1.html @@ -16,6 +16,8 @@ + + @@ -32,12 +34,12 @@ -
校对:shinyzhu, stanzhai+- + @@ -80,6 +82,9 @@ + + +@@ -97,12 +102,29 @@
- + +
- + About the author +
+ +- + Questions and Issues +
+ + +- + Edit and Contribute +
+ + + + +- 序 @@ -573,7 +595,7 @@
-+ 欢迎使用 Swift
在本章中您将了解 Swift 的特性和开发历史,并对 Swift 有一个初步的了解。
diff --git a/chapter2/01_The_Basics.html b/chapter2/01_The_Basics.html index 6d71e5e2..b486a288 100644 --- a/chapter2/01_The_Basics.html +++ b/chapter2/01_The_Basics.html @@ -16,6 +16,8 @@ + + @@ -32,12 +34,12 @@ -+- + @@ -80,6 +82,9 @@ + + +@@ -97,12 +102,29 @@
- + +
- + About the author +
+ +- + Questions and Issues +
+ + +- + Edit and Contribute +
+ + + + +- 序 @@ -573,7 +595,7 @@
-+ 翻译:numbbbbb, lyuka, JaySurplus
diff --git a/chapter2/02_Basic_Operators.html b/chapter2/02_Basic_Operators.html index 4dbc83a8..8ee94c43 100644 --- a/chapter2/02_Basic_Operators.html +++ b/chapter2/02_Basic_Operators.html @@ -16,6 +16,8 @@ + + @@ -32,12 +34,12 @@ -
校对:lslxdx+- + @@ -80,6 +82,9 @@ + + +@@ -97,12 +102,29 @@
- + +
- + About the author +
+ +- + Questions and Issues +
+ + +- + Edit and Contribute +
+ + + + +- 序 @@ -573,7 +595,7 @@
-+ 翻译:xielingwang
@@ -591,13 +613,13 @@
校对:Evilcome- 区间运算符
- 逻辑运算符
-运算符是检查,改变,合并值的特殊符号或短语。例如,加号
-+将两个数相加(如let i = 1 + 2)。复杂些的运行算例如逻辑与运算符&&(如if enteredDoorCode && passedRetinaScan),又或让 i 值加1的便捷运算符自增运算符++i等。Swift 支持大部分标准 C 语言的运算符,且改进许多特性来减少常规编码错误。如,赋值符(
+=)不返回值,以防止把想要判断相等运算符(==)的地方写成赋值符导致的错误。数值运算符(+,-,*,/,%等)会检测并不允许值溢出,以此来避免保存变量时由于变量大于或小于其类型所能承载的范围时导致的异常结果。当然允许你使用 Swift 的溢出运算符来实现溢出。详情参见溢出运算符。运算符是检查、改变、合并值的特殊符号或短语。例如,加号
++将两个数相加(如let i = 1 + 2)。复杂些的运算例如逻辑与运算符&&(如if enteredDoorCode && passedRetinaScan),或让 i 值加1的便捷自增运算符++i等。Swift 支持大部分标准 C 语言的运算符,且改进许多特性来减少常规编码错误。如:赋值符(
=)不返回值,以防止把想要判断相等运算符(==)的地方写成赋值符导致的错误。数值运算符(+,-,*,/,%等)会检测并不允许值溢出,以此来避免保存变量时由于变量大于或小于其类型所能承载的范围时导致的异常结果。当然允许你使用 Swift 的溢出运算符来实现溢出。详情参见溢出运算符。区别于 C 语言,在 Swift 中你可以对浮点数进行取余运算(
%),Swift 还提供了 C 语言没有的表达两数之间的值的区间运算符,(a..b和a...b),这方便我们表达一个区间内的数值。本章节只描述了 Swift 中的基本运算符,高级运算符包含了高级运算符,及如何自定义运算符,及如何进行自定义类型的运算符重载。
术语
-运算符有一元,二元和三元运算符。
+运算符有一元、二元和三元运算符。
- 一元运算符对单一操作对象操作(如
-a)。一元运算符分前置符和后置运算符,前置运算符需紧排操作对象之前(如!b),后置运算符需紧跟操作对象之后(如i++)。- 二元运算符操作两个操作对象(如
@@ -621,10 +643,10 @@ a = b // 此句错误, 因为 x = y 并不返回任何值 } -2 + 3),是中置的,因为它们出现在两个操作对象之间。这个特性使得你无法把(
+==)错写成(=)了,由于if x = y是错误代码,Swift 从底层帮你避免了这些代码错误。这个特性使你无法把(
==)错写成(=),由于if x = y是错误代码,Swift 从底层帮你避免了这些错误代码。数值运算
-Swift 让所有数值类型都支持了基本的四则运算:
+Swift 中所有数值类型都支持了基本的四则运算:
- 加法(
+)- 减法(
@@ -637,7 +659,7 @@ a = b 10.0 / 2.5 // 等于 4.0-)与 C 语言和 Objective-C 不同的是,Swift 默认不允许在数值运算中出现溢出情况。但你可以使用 Swift 的溢出运算符来达到你有目的的溢出(如
-a &+ b)。详情参见溢出运算符。加法运算符也用于
+String的拼接:加法运算符也可用于
String的拼接:"hello, " + "world" // 等于 "hello, world"两个
diff --git a/chapter2/03_Strings_and_Characters.html b/chapter2/03_Strings_and_Characters.html index a5895fc8..39e2ad0e 100644 --- a/chapter2/03_Strings_and_Characters.html +++ b/chapter2/03_Strings_and_Characters.html @@ -16,6 +16,8 @@ + + @@ -32,12 +34,12 @@ -Character值或一个String和一个Character值,相加会生成一个新的String值:+- + @@ -80,6 +82,9 @@ + + +@@ -97,12 +102,29 @@
- + +
- + About the author +
+ +- + Questions and Issues +
+ + +- + Edit and Contribute +
+ + + + +- 序 @@ -573,7 +595,7 @@
-+ diff --git a/chapter2/04_Collection_Types.html b/chapter2/04_Collection_Types.html index 6b1809f1..a80f0650 100644 --- a/chapter2/04_Collection_Types.html +++ b/chapter2/04_Collection_Types.html @@ -16,6 +16,8 @@ + + @@ -32,12 +34,12 @@ -+- + @@ -80,6 +82,9 @@ + + +@@ -97,12 +102,29 @@
- + +
- + About the author +
+ +- + Questions and Issues +
+ + +- + Edit and Contribute +
+ + + + +- 序 @@ -573,7 +595,7 @@
-+ diff --git a/chapter2/05_Control_Flow.html b/chapter2/05_Control_Flow.html index 3bcd2ed7..b4ed0d7e 100644 --- a/chapter2/05_Control_Flow.html +++ b/chapter2/05_Control_Flow.html @@ -16,6 +16,8 @@ + + @@ -32,12 +34,12 @@ -+- + @@ -80,6 +82,9 @@ + + +@@ -97,12 +102,29 @@
- + +
- + About the author +
+ +- + Questions and Issues +
+ + +- + Edit and Contribute +
+ + + + +- 序 @@ -573,7 +595,7 @@
-+ 翻译:vclwei, coverxit, NicePiao
diff --git a/chapter2/06_Functions.html b/chapter2/06_Functions.html index 3cf6bde0..cde7cbcf 100644 --- a/chapter2/06_Functions.html +++ b/chapter2/06_Functions.html @@ -16,6 +16,8 @@ + + @@ -32,12 +34,12 @@ -
校对:coverxit, stanzhai+- + @@ -80,6 +82,9 @@ + + +@@ -97,12 +102,29 @@
- + +
- + About the author +
+ +- + Questions and Issues +
+ + +- + Edit and Contribute +
+ + + + +- 序 @@ -573,7 +595,7 @@
-+ @@ -666,7 +688,7 @@ printWithoutCounting("hello, world")第一个函数
printAndCount,输出一个字符串并返回Int类型的字符数。第二个函数printWithoutCounting调用了第一个函数,但是忽略了它的返回值。当第二个函数被调用时,消息依然会由第一个函数输出,但是返回值不会被用到。-注意:
+
返回值可以被忽略,但定义了有返回值的函数必须返回一个值,如果在函数定义底部没有返回任何值,这叫导致编译错误(compile-time error)。注意:
返回值可以被忽略,但定义了有返回值的函数必须返回一个值,如果在函数定义底部没有返回任何值,这将导致编译错误(compile-time error)。多重返回值函数(Functions with Multiple Return Values)
你可以用元组(tuple)类型让多个值作为一个复合值从函数中返回。
@@ -692,7 +714,7 @@ printWithoutCounting("hello, world") println("\(total.vowels) vowels and \(total.consonants) consonants") // prints "6 vowels and 13 consonants" -需要注意的是,元组的成员不需要在函数中返回时命名,因为它们的名字已经在函数返回类型有有了定义。
+需要注意的是,元组的成员不需要在函数中返回时命名,因为它们的名字已经在函数返回类型中有了定义。
函数参数名称(Function Parameter Names)
以上所有的函数都给它们的参数定义了
@@ -737,7 +759,7 @@ println("\(total.vowels) vowels and \(total.consonants) consonants")参数名(parameter name):注意:
当其他人在第一次读你的代码,函数参数的意图显得不明显时,考虑使用外部参数名。如果函数参数名的意图是很明显的,那就不需要定义外部参数名了。简写外部参数名(Shorthand External Parameter Names)
-如果你需要提供外部参数名,但是局部参数名已经定义好了,那么你不需要写两次这些参数名。相反,只写一次参数名,并用
+井号(#)作为前缀就可以了。这告诉 Swift 使用这个参数名作为局部和外部参数名。如果你需要提供外部参数名,但是局部参数名已经定义好了,那么你不需要写两次参数名。相反,只写一次参数名,并用
井号(#)作为前缀就可以了。这告诉 Swift 使用这个参数名作为局部和外部参数名。下面这个例子定义了一个叫
containsCharacter的函数,使用井号(#)的方式定义了外部参数名:func containsCharacter(#string: String, #characterToFind: Character) -> Bool { for character in string { @@ -753,9 +775,9 @@ println("\(total.vowels) vowels and \(total.consonants) consonants") // containsAVee equals true, because "aardvark" contains a "v”默认参数值(Default Parameter Values)
-你可以在函数体中为每个参数定义
+默认值。当默认值被定义后,调用这个函数时可以略去这个参数。你可以在函数体中为每个参数定义
默认值。当默认值被定义后,调用这个函数时可以忽略这个参数。-注意:
+
将带有默认值的参数放在函数参数表的最后。这样可以保证在函数调用时,非默认参数的顺序是一致的,同时使得相同的函数在不同情况下调用时显得更为清晰。注意:
将带有默认值的参数放在函数参数列表的最后。这样可以保证在函数调用时,非默认参数的顺序是一致的,同时使得相同的函数在不同情况下调用时显得更为清晰。以下是另一个版本的
join函数,其中joiner有了默认参数值:func join(string s1: String, toString s2: String, withJoiner joiner: String = " ") -> String { diff --git a/chapter2/07_Closures.html b/chapter2/07_Closures.html index be2b03c6..403b4cd9 100644 --- a/chapter2/07_Closures.html +++ b/chapter2/07_Closures.html @@ -16,6 +16,8 @@ + + @@ -32,12 +34,12 @@ -+- + @@ -80,6 +82,9 @@ + + +@@ -97,12 +102,29 @@
- + +
- + About the author +
+ +- + Questions and Issues +
+ + +- + Edit and Contribute +
+ + + + +- 序 @@ -573,7 +595,7 @@
-+ diff --git a/chapter2/08_Enumerations.html b/chapter2/08_Enumerations.html index cda79558..df60105d 100644 --- a/chapter2/08_Enumerations.html +++ b/chapter2/08_Enumerations.html @@ -16,6 +16,8 @@ + + @@ -32,12 +34,12 @@ -+- + @@ -80,6 +82,9 @@ + + +@@ -97,12 +102,29 @@
- + +
- + About the author +
+ +- + Questions and Issues +
+ + +- + Edit and Contribute +
+ + + + +- 序 @@ -573,7 +595,7 @@
-+ 翻译:yankuangshi
diff --git a/chapter2/09_Classes_and_Structures.html b/chapter2/09_Classes_and_Structures.html index 1b23ba5e..be5b0591 100644 --- a/chapter2/09_Classes_and_Structures.html +++ b/chapter2/09_Classes_and_Structures.html @@ -16,6 +16,8 @@ + + @@ -32,12 +34,12 @@ -
校对:shinyzhu+- + @@ -80,6 +82,9 @@ + + +@@ -97,12 +102,29 @@
- + +
- + About the author +
+ +- + Questions and Issues +
+ + +- + Edit and Contribute +
+ + + + +- 序 @@ -573,7 +595,7 @@
-+ 翻译:JaySurplus
@@ -587,7 +609,7 @@
校对:sg552- 类和结构体的选择
- 集合(collection)类型的赋值与复制行为
-类和结构体是人们构建代码所用的一种通用且灵活的构造体。为了在类和结构体中实现各种功能,我们必须要严格按照对于常量,变量以及函数所规定的语法规则来定义属性和添加方法。
+类和结构体是人们构建代码所用的一种通用且灵活的构造体。为了在类和结构体中实现各种功能,我们必须要严格按照常量、变量以及函数所规定的语法规则来定义属性和添加方法。
与其他编程语言所不同的是,Swift 并不要求你为自定义类和结构去创建独立的接口和实现文件。你所要做的是在一个单一文件中定义一个类或者结构体,系统将会自动生成面向其它代码的外部接口。
注意:
@@ -596,7 +618,7 @@
通常一个类的实例被称为对象。然而在Swift 中,类和结构体的关系要比在其他语言中更加的密切,本章中所讨论的大部分功能都可以用在类和结构体上。因此,我们会主要使用实例而不是对象。类和结构体对比
Swift 中类和结构体有很多共同点。共同处在于:
-
- 定义属性用于储存值
+- 定义属性用于存储值
- 定义方法用于提供功能
- 定义附属脚本用于访问值
- 定义构造器用于生成初始化值
@@ -639,8 +661,8 @@ class VideoMode { var name: String? } -在上面的示例中我们定义了一个名为
-Resolution的结构体,用来描述一个显示器的像素分辨率。这个结构体包含了两个名为width和height的储存属性。储存属性是捆绑和储存在类或结构体中的常量或变量。当这两个属性被初始化为整数0的时候,它们会被推断为Int类型。在上面的示例中我们还定义了一个名为
+VideoMode的类,用来描述一个视频显示器的特定模式。这个类包含了四个储存属性变量。第一个是分辨率,它被初始化为一个新的Resolution结构体的实例,具有Resolution的属性类型。新VideoMode实例同时还会初始化其它三个属性,它们分别是,初始值为false(意为“non-interlaced video”)的interlaced,回放帧率初始值为0.0的frameRate和值为可选String的name。name属性会被自动赋予一个默认值nil,意为“没有name值”,因它是一个可选类型。在上面的示例中我们定义了一个名为
+Resolution的结构体,用来描述一个显示器的像素分辨率。这个结构体包含了两个名为width和height的存储属性。存储属性是捆绑和存储在类或结构体中的常量或变量。当这两个属性被初始化为整数0的时候,它们会被推断为Int类型。在上面的示例中我们还定义了一个名为
VideoMode的类,用来描述一个视频显示器的特定模式。这个类包含了四个储存属性变量。第一个是分辨率,它被初始化为一个新的Resolution结构体的实例,具有Resolution的属性类型。新VideoMode实例同时还会初始化其它三个属性,它们分别是,初始值为false(意为“non-interlaced video”)的interlaced,回放帧率初始值为0.0的frameRate和值为可选String的name。name属性会被自动赋予一个默认值nil,意为“没有name值”,因为它是一个可选类型。类和结构体实例
Resolution结构体和VideoMode类的定义仅描述了什么是Resolution和VideoMode。它们并没有描述一个特定的分辨率(resolution)或者视频模式(video mode)。为了描述一个特定的分辨率或者视频模式,我们需要生成一个它们的实例。生成结构体和类实例的语法非常相似:
@@ -649,7 +671,7 @@ let someVideoMode = VideoMode()结构体和类都使用构造器语法来生成新的实例。构造器语法的最简单形式是在结构体或者类的类型名称后跟随一个空括弧,如
Resolution()或VideoMode()。通过这种方式所创建的类或者结构体实例,其属性均会被初始化为默认值。构造过程章节会对类和结构体的初始化进行更详细的讨论。属性访问
-通过使用点语法(dot syntax),你可以访问实例中所含有的属性。其语法规则是,实例名后面紧跟属性名,两者通过点号(.)连接:
+通过使用点语法(dot syntax),你可以访问实例中所含有的属性。其语法规则是,实例名后面紧跟属性名,两者通过点号(.)连接:
@@ -693,7 +715,7 @@ var cinema = hdprintln("The width of someResolution is \(someResolution.width)") // 输出 "The width of someResolution is 0"-println("hd is still \(hd.width ) pixels wide") // 输出 "hd is still 1920 pixels wide"在将
+hd赋予给cinema的时候,实际上是将hd中所储存的值(values)进行拷贝,然后将拷贝的数据储存到新的cinema实例中。结果就是两个完全独立的实例碰巧包含有相同的数值。由于两者相互独立,因此将cinema的width修改为2048并不会影响hd中的宽(width)。在将
hd赋予给cinema的时候,实际上是将hd中所存储的值(values)进行拷贝,然后将拷贝的数据存储到新的cinema实例中。结果就是两个完全独立的实例碰巧包含有相同的数值。由于两者相互独立,因此将cinema的width修改为2048并不会影响hd中的宽(width)。枚举也遵循相同的行为准则:
enum CompassPoint { case North, South, East, West @@ -709,7 +731,7 @@ if rememberDirection == .West {上例中
rememberedDirection被赋予了currentDirection的值(value),实际上它被赋予的是值(value)的一个拷贝。赋值过程结束后再修改currentDirection的值并不影响rememberedDirection所储存的原始值(value)的拷贝。类是引用类型
-与值类型不同,引用类型在被赋予到一个变量,常量或者被传递到一个函数时,操作的并不是其拷贝。因此,引用的是已存在的实例本身而不是其拷贝。
+与值类型不同,引用类型在被赋予到一个变量、常量或者被传递到一个函数时,操作的是引用,其并不是拷贝。因此,引用的是已存在的实例本身而不是其拷贝。
请看下面这个示例,其使用了之前定义的
VideoMode类:-let tenEighty = VideoMode() tenEighty.resolution = hd @@ -722,14 +744,14 @@ tenEighty.frameRate = 25.0-let alsoTenEighty = tenEighty alsoTenEighty.frameRate = 30.0因为类是引用类型,所以
+tenEight和alsoTenEight实际上引用的是相同的VideoMode实例。换句话说,它们只是同一个实例的两种叫法。因为类是引用类型,所以
tenEight和alsoTenEight实际上引用的是相同的VideoMode实例。换句话说,它们是同一个实例的两种叫法。下面,通过查看
tenEighty的frameRate属性,我们会发现它正确的显示了基本VideoMode实例的新帧率,其值为30.0:-println("The frameRate property of tenEighty is now \(tenEighty.frameRate)") // 输出 "The frameRate property of theEighty is now 30.0"需要注意的是
+tenEighty和alsoTenEighty被声明为常量((constants)而不是变量。然而你依然可以改变tenEighty.frameRate和alsoTenEighty.frameRate,因为这两个常量本身不会改变。它们并不储存这个VideoMode实例,在后台仅仅是对VideoMode实例的引用。所以,改变的是被引用的基础VideoMode的frameRate参数,而不改变常量的值。需要注意的是
tenEighty和alsoTenEighty被声明为常量((constants)而不是变量。然而你依然可以改变tenEighty.frameRate和alsoTenEighty.frameRate,因为这两个常量本身不会改变。它们并不存储这个VideoMode实例,在后台仅仅是对VideoMode实例的引用。所以,改变的是被引用的基础VideoMode的frameRate参数,而不改变常量的值。恒等运算符
-因为类是引用类型,有可能有多个常量和变量在后台同时引用某一个类实例。(对于结构体和枚举来说,这并不成立。因为它们作值类型,在被赋予到常量,变量或者传递到函数时,总是会被拷贝。)
+因为类是引用类型,有可能有多个常量和变量在后台同时引用某一个类实例。(对于结构体和枚举来说,这并不成立。因为它们作为值类型,在被赋予到常量、变量或者传递到函数时,其值总是会被拷贝。)
如果能够判定两个常量或者变量是否引用同一个类实例将会很有帮助。为了达到这个目的,Swift 内建了两个恒等运算符:
- 等价于 ( === )
@@ -741,7 +763,7 @@ alsoTenEighty.frameRate = 30.0 } //输出 "tenEighty and alsoTenEighty refer to the same Resolution instance."请注意“等价于”(用三个等号表示,===) 与“等于”(用两个等号表示,==)的不同:
+请注意
“等价于"(用三个等号表示,===) 与“等于"(用两个等号表示,==)的不同:
- “等价于”表示两个类类型(class type)的常量或者变量引用同一个类实例。
- “等于”表示两个实例的值“相等”或“相同”,判定时要遵照类设计者定义定义的评判标准,因此相比于“相等”,这是一种更加合适的叫法。
@@ -752,7 +774,7 @@ alsoTenEighty.frameRate = 30.0类和结构体的选择
在你的代码中,你可以使用类和结构体来定义你的自定义数据类型。
-然而,结构体实例总是通过值传递,类实例总是通过引用传递。这意味两者适用不同的任务。当你的在考虑一个工程项目的数据构造和功能的时候,你需要决定每个数据构造是定义成类还是结构体。
+然而,结构体实例总是通过值传递,类实例总是通过引用传递。这意味两者适用不同的任务。当你在考虑一个工程项目的数据构造和功能的时候,你需要决定每个数据构造是定义成类还是结构体。
按照通用的准则,当符合一条或多条以下条件时,请考虑构建结构体:
- 结构体的主要目的是用来封装少量相关简单数据值。
@@ -861,12 +883,12 @@ println(c[0]) // 输出 "These two subarrays share the same elements."强制复制数组
-我们通过调用数组的
+copy方法进行强制显性复制。这个方法对数组进行了浅拷贝(shallow copy),并且返回一个包含此拷贝的新数组。我们通过调用数组的
copy方法进行强制显式复制。这个方法对数组进行了浅拷贝(shallow copy),并且返回一个包含此拷贝数组的新数组。下面这个示例中定义了一个
names数组,其包含了七个人名。还定义了一个copiedNames变量,用以储存在names上调用copy方法所返回的结果:-var names = ["Mohsen", "Hilary", "Justyn", "Amy", "Rich", "Graham", "Vic"] var copiedNames = names.copy()我们可以通过修改一个数组中某元素,并且检查另一个数组中对应元素的方法来判定
+names数组确已被复制。如果你将copiedNames中第一个元素从"Mohsen"修改为"Mo",则names数组返回的仍是拷贝发生前的"Mohsen":我们可以通过修改数组中某一个元素,并且检查另一个数组中对应元素的方法来判定
names数组确已被复制。如果你将copiedNames中第一个元素从"Mohsen"修改为"Mo",则names数组返回的仍是拷贝发生前的"Mohsen":copiedName[0] = "Mo" println(name[0]) // 输出 "Mohsen" diff --git a/chapter2/10_Properties.html b/chapter2/10_Properties.html index 6290f7b9..005bd60f 100644 --- a/chapter2/10_Properties.html +++ b/chapter2/10_Properties.html @@ -16,6 +16,8 @@ + + @@ -32,12 +34,12 @@ -+- + @@ -80,6 +82,9 @@ + + +@@ -97,12 +102,29 @@
- + +
- + About the author +
+ +- + Questions and Issues +
+ + +- + Edit and Contribute +
+ + + + +- 序 @@ -573,7 +595,7 @@
-+ diff --git a/chapter2/11_Methods.html b/chapter2/11_Methods.html index e6992938..1989943d 100644 --- a/chapter2/11_Methods.html +++ b/chapter2/11_Methods.html @@ -16,6 +16,8 @@ + + @@ -32,12 +34,12 @@ -+- + @@ -80,6 +82,9 @@ + + +@@ -97,12 +102,29 @@
- + +
- + About the author +
+ +- + Questions and Issues +
+ + +- + Edit and Contribute +
+ + + + +- 序 @@ -573,7 +595,7 @@
-+ diff --git a/chapter2/12_Subscripts.html b/chapter2/12_Subscripts.html index bc61a35b..4bebbe4d 100644 --- a/chapter2/12_Subscripts.html +++ b/chapter2/12_Subscripts.html @@ -16,6 +16,8 @@ + + @@ -32,12 +34,12 @@ -+- + @@ -80,6 +82,9 @@ + + +@@ -97,12 +102,29 @@
- + +
- + About the author +
+ +- + Questions and Issues +
+ + +- + Edit and Contribute +
+ + + + +- 序 @@ -573,7 +595,7 @@
-+ diff --git a/chapter2/13_Inheritance.html b/chapter2/13_Inheritance.html index 407dcf8a..97513bc8 100644 --- a/chapter2/13_Inheritance.html +++ b/chapter2/13_Inheritance.html @@ -16,6 +16,8 @@ + + @@ -32,12 +34,12 @@ -+- + @@ -80,6 +82,9 @@ + + +@@ -97,12 +102,29 @@
- + +
- + About the author +
+ +- + Questions and Issues +
+ + +- + Edit and Contribute +
+ + + + +- 序 @@ -573,7 +595,7 @@
-+ 翻译:Hawstein
diff --git a/chapter2/14_Initialization.html b/chapter2/14_Initialization.html index 6401b280..3f3e19fc 100644 --- a/chapter2/14_Initialization.html +++ b/chapter2/14_Initialization.html @@ -16,6 +16,8 @@ + + @@ -32,12 +34,12 @@ -
校对:menlongsheng+- + @@ -80,6 +82,9 @@ + + +@@ -97,12 +102,29 @@
- + +
- + About the author +
+ +- + Questions and Issues +
+ + +- + Edit and Contribute +
+ + + + +- 序 @@ -573,7 +595,7 @@
-+ diff --git a/chapter2/15_Deinitialization.html b/chapter2/15_Deinitialization.html index 3908dd28..acfedc6e 100644 --- a/chapter2/15_Deinitialization.html +++ b/chapter2/15_Deinitialization.html @@ -16,6 +16,8 @@ + + @@ -32,12 +34,12 @@ -+- + @@ -80,6 +82,9 @@ + + +@@ -97,12 +102,29 @@
- + +
- + About the author +
+ +- + Questions and Issues +
+ + +- + Edit and Contribute +
+ + + + +- 序 @@ -573,7 +595,7 @@
-+ diff --git a/chapter2/16_Automatic_Reference_Counting.html b/chapter2/16_Automatic_Reference_Counting.html index 5a0ffedc..3b3cd54c 100644 --- a/chapter2/16_Automatic_Reference_Counting.html +++ b/chapter2/16_Automatic_Reference_Counting.html @@ -16,6 +16,8 @@ + + @@ -32,12 +34,12 @@ -+- + @@ -80,6 +82,9 @@ + + +@@ -97,12 +102,29 @@
- + +
- + About the author +
+ +- + Questions and Issues +
+ + +- + Edit and Contribute +
+ + + + +- 序 @@ -573,7 +595,7 @@
-+ diff --git a/chapter2/17_Optional_Chaining.html b/chapter2/17_Optional_Chaining.html index 4efd90be..43fe96a6 100644 --- a/chapter2/17_Optional_Chaining.html +++ b/chapter2/17_Optional_Chaining.html @@ -16,6 +16,8 @@ + + @@ -32,12 +34,12 @@ -+- + @@ -80,6 +82,9 @@ + + +@@ -97,12 +102,29 @@
- + +
- + About the author +
+ +- + Questions and Issues +
+ + +- + Edit and Contribute +
+ + + + +- 序 @@ -573,7 +595,7 @@
-+ 翻译:Jasonbroker
diff --git a/chapter2/18_Type_Casting.html b/chapter2/18_Type_Casting.html index 6a301571..966c9e63 100644 --- a/chapter2/18_Type_Casting.html +++ b/chapter2/18_Type_Casting.html @@ -16,6 +16,8 @@ + + @@ -32,12 +34,12 @@ -
校对:numbbbbb, stanzhai+- + @@ -80,6 +82,9 @@ + + +@@ -97,12 +102,29 @@
- + +
- + About the author +
+ +- + Questions and Issues +
+ + +- + Edit and Contribute +
+ + + + +- 序 @@ -573,7 +595,7 @@
-+ 翻译:xiehurricane
diff --git a/chapter2/19_Nested_Types.html b/chapter2/19_Nested_Types.html index 69e6a87a..05e727e9 100644 --- a/chapter2/19_Nested_Types.html +++ b/chapter2/19_Nested_Types.html @@ -16,6 +16,8 @@ + + @@ -32,12 +34,12 @@ -
校对:happyming+- + @@ -80,6 +82,9 @@ + + +@@ -97,12 +102,29 @@
- + +
- + About the author +
+ +- + Questions and Issues +
+ + +- + Edit and Contribute +
+ + + + +- 序 @@ -573,7 +595,7 @@
-+ diff --git a/chapter2/20_Extensions.html b/chapter2/20_Extensions.html index a0db498e..91526048 100644 --- a/chapter2/20_Extensions.html +++ b/chapter2/20_Extensions.html @@ -16,6 +16,8 @@ + + @@ -32,12 +34,12 @@ -+- + @@ -80,6 +82,9 @@ + + +@@ -97,12 +102,29 @@
- + +
- + About the author +
+ +- + Questions and Issues +
+ + +- + Edit and Contribute +
+ + + + +- 序 @@ -573,7 +595,7 @@
-+