Merge pull request #145 from yankuangshi/develop
[2.1基础部分] : 把非代码部分的英文括号修改成中文括号,修改部分错别字
This commit is contained in:
@ -45,6 +45,7 @@ Swift 是一个类型安全的语言,可选就是一个很好的例子。Swift
|
||||
let maximumNumberOfLoginAttempts = 10
|
||||
var currentLoginAttempt = 0
|
||||
|
||||
|
||||
这两行代码可以被理解为:
|
||||
|
||||
“声明一个名字是`maximumNumberOfLoginAttempts`的新常量,并给它一个值`10`。然后,声明一个名字是`currentLoginAttempt`的变量并将它的值初始化为`0`.”
|
||||
@ -61,7 +62,7 @@ Swift 是一个类型安全的语言,可选就是一个很好的例子。Swift
|
||||
|
||||
### 类型标注
|
||||
|
||||
当你声明常量或者变量的时候可以加上_类型标注(type annotation)_,说明常量或者变量中要存储的值的类型。如果要添加类型标注,需要在常量或者变量名后面加上一个冒号和空格,然后加上类型名称。
|
||||
当你声明常量或者变量的时候可以加上_类型标注(type annotation)_,说明常量或者变量中要存储的值的类型。如果要添加类型标注,需要在常量或者变量名后面加上一个冒号和空格,然后加上类型名称。
|
||||
|
||||
这个例子给`welcomeMessage`变量添加了类型标注,表示这个变量可以存储`String`类型的值:
|
||||
|
||||
@ -138,11 +139,11 @@ Swift 用_字符串插值(string interpolation)_的方式把常量名或者
|
||||
## 注释
|
||||
请将你的代码中的非执行文本注释成提示或者笔记以方便你将来阅读。Swift 的编译器将会在编译代码时自动忽略掉注释部分。
|
||||
|
||||
Swift 中的注释与C 语言的注释非常相似。单行注释以双正斜杠作(`//`)为起始标记:
|
||||
Swift 中的注释与C 语言的注释非常相似。单行注释以双正斜杠(`//`)作为起始标记:
|
||||
|
||||
// 这是一个注释
|
||||
|
||||
你也可以进行多行注释,其起始标记为单个正斜杠后跟随一个星号(`/*`),终止标记为一个星号后跟随单个正斜杠(`*/`):
|
||||
你也可以进行多行注释,其起始标记为单个正斜杠后跟随一个星号(`/*`),终止标记为一个星号后跟随单个正斜杠(`*/`):
|
||||
|
||||
/* 这是一个,
|
||||
多行注释 */
|
||||
@ -213,15 +214,15 @@ Swift 也提供了一个特殊的无符号类型`UInt`,长度与当前平台
|
||||
<a name="type_safety_and_type_inference"></a>
|
||||
## 类型安全和类型推测
|
||||
|
||||
Swift 是一个_类型安全(type safe )_的语言。类型安全的语言可以让你清楚地知道代码要处理的值的类型。如果你的代码需要一个`String`,你绝对不可能不小心传进去一个`Int`。
|
||||
Swift 是一个_类型安全(type safe)_的语言。类型安全的语言可以让你清楚地知道代码要处理的值的类型。如果你的代码需要一个`String`,你绝对不可能不小心传进去一个`Int`。
|
||||
|
||||
由于 Swift 是类型安全的,所以它会在编译你的代码时进行_类型检查(type checks)_,并把不匹配的类型标记为错误。这可以让你在开发的时候尽早发现并修复错误。
|
||||
由于 Swift 是类型安全的,所以它会在编译你的代码时进行_类型检查(type checks)_,并把不匹配的类型标记为错误。这可以让你在开发的时候尽早发现并修复错误。
|
||||
|
||||
当你要处理不同类型的值时,类型检查可以帮你避免错误。然而,这并不是说你每次声明常量和变量的时候都需要显式指定类型。如果你没有显式指定类型,Swift 会使用_类型推测(type inference)_来选择合适的类型。有了类型推测,编译器可以在编译代码的时候自动推测出表达式的类型。原理很简单,只要检查你赋的值即可。
|
||||
当你要处理不同类型的值时,类型检查可以帮你避免错误。然而,这并不是说你每次声明常量和变量的时候都需要显式指定类型。如果你没有显式指定类型,Swift 会使用_类型推测(type inference)_来选择合适的类型。有了类型推测,编译器可以在编译代码的时候自动推测出表达式的类型。原理很简单,只要检查你赋的值即可。
|
||||
|
||||
因为有类型推测,和 C 或者 Objective-C 比起来 Swift 很少需要声明类型。常量和变量虽然需要明确类型,但是大部分工作并不需要你自己来完成。
|
||||
|
||||
当你声明常量或者变量并赋初值的时候类型推测非常有用。当你在声明常量或者变量的时候赋给它们一个_字面量(literal value 或 literal)_即可触发类型推测。(字面量就是会直接出现在你代码中的值,比如`42`和`3.14159`。)
|
||||
当你声明常量或者变量并赋初值的时候类型推测非常有用。当你在声明常量或者变量的时候赋给它们一个_字面量(literal value 或 literal)_即可触发类型推测。(字面量就是会直接出现在你代码中的值,比如`42`和`3.14159`。)
|
||||
|
||||
例如,如果你给一个新常量赋值`42`并且没有标明类型,Swift 可以推测出常量类型是`Int`,因为你给它赋的初始值看起来像一个整数:
|
||||
|
||||
@ -259,7 +260,7 @@ Swift 是一个_类型安全(type safe )_的语言。类型安全的语言可以
|
||||
let octalInteger = 0o21 // 八进制的17
|
||||
let hexadecimalInteger = 0x11 // 十六进制的17
|
||||
|
||||
浮点字面量可以是十进制(没有前缀)或者是十六进制(前缀是`0x`)。小数点两边必须有至少一个十进制数字(或者是十六进制的数字)。浮点字面量还有一个可选的_指数(exponent)_,在十进制浮点数中通过大写或者小写的`e`来指定,在十六进制浮点数中通过大写或者小写的`p`来指定。
|
||||
浮点字面量可以是十进制(没有前缀)或者是十六进制(前缀是`0x`)。小数点两边必须有至少一个十进制数字(或者是十六进制的数字)。浮点字面量还有一个可选的_指数(exponent)_,在十进制浮点数中通过大写或者小写的`e`来指定,在十六进制浮点数中通过大写或者小写的`p`来指定。
|
||||
|
||||
如果一个十进制数的指数为`exp`,那这个数相当于基数和$10^{exp}$的乘积:
|
||||
* `1.25e2` 表示 $1.25 × 10^{2}$,等于 `125.0`。
|
||||
@ -296,7 +297,7 @@ Swift 是一个_类型安全(type safe )_的语言。类型安全的语言可以
|
||||
let tooBig: Int8 = Int8.max + 1
|
||||
// Int8 类型不能存储超过最大值的数,所以会报错
|
||||
|
||||
由于每中整数类型都可以存储不同范围的值,所以你必须根据不同情况选择性使用数值型类型转换。这种选择性使用的方式,可以预防隐式转换的错误并让你的代码中的类型转换意图变得清晰。
|
||||
由于每种整数类型都可以存储不同范围的值,所以你必须根据不同情况选择性使用数值型类型转换。这种选择性使用的方式,可以预防隐式转换的错误并让你的代码中的类型转换意图变得清晰。
|
||||
|
||||
要将一种数字类型转换成另一种,你要用当前值来初始化一个期望类型的新数字,这个数字的类型就是你的目标类型。在下面的例子中,常量`twoThousand`是`UInt16`类型,然而常量`one`是`UInt8`类型。它们不能直接相加,因为它们类型不同。所以要调用`UInt16(one)`来创建一个新的`UInt16`数字并用`one`的值来初始化,然后使用这个新数字来计算:
|
||||
|
||||
@ -333,7 +334,7 @@ Swift 是一个_类型安全(type safe )_的语言。类型安全的语言可以
|
||||
<a name="type_aliases"></a>
|
||||
## 类型别名
|
||||
|
||||
_类型别名(type aliases)_就是给现有类型定义另一个名字。你可以使用`typealias`关键字来定义类型别名。
|
||||
_类型别名(type aliases)_就是给现有类型定义另一个名字。你可以使用`typealias`关键字来定义类型别名。
|
||||
|
||||
当你想要给现有类型起一个更有意义的名字时,类型别名非常有用。假设你正在处理特定长度的外部资源的数据:
|
||||
|
||||
@ -349,7 +350,7 @@ _类型别名(type aliases)_就是给现有类型定义另一个名字。你可
|
||||
<a name="booleans"></a>
|
||||
## 布尔值
|
||||
|
||||
Swift 有一个基本的_布尔(Boolean)_类型,叫做`Bool`。布尔值指_逻辑上的(logical)_,因为它们只能是真或者假。Swift 有两个布尔常量,`true`和`false`:
|
||||
Swift 有一个基本的_布尔(Boolean)_类型,叫做`Bool`。布尔值指_逻辑上的(logical)_,因为它们只能是真或者假。Swift 有两个布尔常量,`true`和`false`:
|
||||
|
||||
let orangesAreOrange = true
|
||||
let turnipsAreDelicious = false
|
||||
@ -431,7 +432,7 @@ _元组(tuples)_把多个值组合成一个复合值。元组内的值可以
|
||||
println("The status message is \(http200Status.description)")
|
||||
// 输出 "The status message is OK"
|
||||
|
||||
作为函数返回值时,元组非常有用。一个用来获取网页的函数可能会返回一个`(Int, String)`元组来描述是否获取成功。和只能返回一个类型的值比较起来,一个包含两个不同类型值的元组可以让函数的返回信息更有用。请参考[函数参数与返回值(06_Functions.html#Function_Parameters_and_Return_Values)。
|
||||
作为函数返回值时,元组非常有用。一个用来获取网页的函数可能会返回一个`(Int, String)`元组来描述是否获取成功。和只能返回一个类型的值比较起来,一个包含两个不同类型值的元组可以让函数的返回信息更有用。请参考[函数参数与返回值](06_Functions.html#Function_Parameters_and_Return_Values)。
|
||||
|
||||
> 注意:
|
||||
>
|
||||
@ -466,7 +467,7 @@ C 和 Objective-C 中并没有可选这个概念。最接近的是 Objective-C
|
||||
|
||||
你可以使用`if`语句来判断一个可选是否包含值。如果可选有值,结果是`true`;如果没有值,结果是`false`。
|
||||
|
||||
当你确定可选包_确实_含值之后,你可以在可选的名字后面加一个感叹号(`!`)来获取值。这个惊叹号表示“我知道这个可选有值,请使用它。”这被称为可选值的_强制解析(forced unwrapping)_:
|
||||
当你确定可选_确实_包含值之后,你可以在可选的名字后面加一个感叹号(`!`)来获取值。这个惊叹号表示“我知道这个可选有值,请使用它。”这被称为可选值的_强制解析(forced unwrapping)_:
|
||||
|
||||
if convertedNumber {
|
||||
println("\(possibleNumber) has an integer value of \(convertedNumber!)")
|
||||
|
||||
Reference in New Issue
Block a user