Update: Strings&&Characters 格式调整
This commit is contained in:
@ -126,7 +126,7 @@ Swift 的 **String** 类型是值类型。
|
|||||||
值类型在 [Structures and Enumerations Are Value Types](https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/ClassesAndStructures.html#//apple_ref/doc/uid/TP40014097-CH13-XID_104)(**章节信息URL需要替换**) 中进行了说明。
|
值类型在 [Structures and Enumerations Are Value Types](https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/ClassesAndStructures.html#//apple_ref/doc/uid/TP40014097-CH13-XID_104)(**章节信息URL需要替换**) 中进行了说明。
|
||||||
|
|
||||||
> 注意:
|
> 注意:
|
||||||
> 与 Cocoa 中的 NSString 不同,当您在 Cocoa 中创建了一个 NSString 实例,并将其传递给一个函数/方法,或者赋值给一个变量,您传递或赋值的是该 NSString 实例的一个引用,除非您特别要求进行值拷贝,否则字符串不会生成新的副本来进行赋值操作。
|
> 与 Cocoa 中的`NSString`不同,当您在 Cocoa 中创建了一个`NSString`实例,并将其传递给一个函数/方法,或者赋值给一个变量,您传递或赋值的是该`NSString`实例的一个引用,除非您特别要求进行值拷贝,否则字符串不会生成新的副本来进行赋值操作。
|
||||||
|
|
||||||
Swift 默认字符串拷贝的方式保证了在函数/方法中传递的是字符串的值。
|
Swift 默认字符串拷贝的方式保证了在函数/方法中传递的是字符串的值。
|
||||||
很明显无论该值来自于哪里,都是您独自拥有的。
|
很明显无论该值来自于哪里,都是您独自拥有的。
|
||||||
@ -141,7 +141,7 @@ Swift 默认字符串拷贝的方式保证了在函数/方法中传递的是字
|
|||||||
|
|
||||||
Swift 的 **String** 类型表示特定序列的 **Character** (字符) 类型值的集合。
|
Swift 的 **String** 类型表示特定序列的 **Character** (字符) 类型值的集合。
|
||||||
每一个字符值代表一个 Unicode 字符。
|
每一个字符值代表一个 Unicode 字符。
|
||||||
您可利用 for-in 循环来遍历字符串中的每一个字符:
|
您可利用`for-in`循环来遍历字符串中的每一个字符:
|
||||||
|
|
||||||
```
|
```
|
||||||
for character in "Dog!🐶" {
|
for character in "Dog!🐶" {
|
||||||
@ -181,9 +181,9 @@ println("unusualMenagerie has \(countElements(unusualMenagerie)) characters")
|
|||||||
> 因此字符串的长度不得不通过迭代字符串中每一个字符的长度来进行计算。
|
> 因此字符串的长度不得不通过迭代字符串中每一个字符的长度来进行计算。
|
||||||
> 如果您正在处理一个长字符串,需要注意`countElements`函数必须遍历字符串中的字符以精准计算字符串的长度。
|
> 如果您正在处理一个长字符串,需要注意`countElements`函数必须遍历字符串中的字符以精准计算字符串的长度。
|
||||||
>
|
>
|
||||||
> 另外需要注意的是通过`countElements`返回的字符数量并不总是与包含相同字符的 NSString 的`length`属性相同。
|
> 另外需要注意的是通过`countElements`返回的字符数量并不总是与包含相同字符的`NSString`的`length`属性相同。
|
||||||
> NSString 的`length`属性是基于利用 UTF-16 表示的十六位代码单元数字,而不是基于 Unicode 字符。
|
> `NSString`的`length`属性是基于利用 UTF-16 表示的十六位代码单元数字,而不是基于 Unicode 字符。
|
||||||
> 为了解决这个问题,NSString 的`length`属性在被 Swift的 **String** 访问时会成为`utf16count`。
|
> 为了解决这个问题,`NSString`的`length`属性在被 Swift 的 **String** 访问时会成为`utf16count`。
|
||||||
|
|
||||||
<a name="concatenating_strings_and_characters"></a>
|
<a name="concatenating_strings_and_characters"></a>
|
||||||
### 连接字符串和字符 (Concatenating Strings and Characters)
|
### 连接字符串和字符 (Concatenating Strings and Characters)
|
||||||
@ -204,7 +204,7 @@ let characterPlusString = character1 + string1 // 等于 "!hello"
|
|||||||
let characterPlusCharacter = character1 + character2 // 等于 "!?"
|
let characterPlusCharacter = character1 + character2 // 等于 "!?"
|
||||||
```
|
```
|
||||||
|
|
||||||
您也可以通过加法赋值运算符 (+=) 将一个字符串或者字符添加到一个已经存在字符串变量上:
|
您也可以通过加法赋值运算符 (`+=`) 将一个字符串或者字符添加到一个已经存在字符串变量上:
|
||||||
|
|
||||||
```
|
```
|
||||||
var instruction = "look over"
|
var instruction = "look over"
|
||||||
@ -248,7 +248,7 @@ let message = "\(multiplier) 乘以 2.5 是 \(Double(multiplier) * 2.5)"
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
Swift 提供了三种方式来比较字符串的值:字符串相等,前缀相等和后缀相等。
|
Swift 提供了三种方式来比较字符串的值:字符串相等、前缀相等和后缀相等。
|
||||||
|
|
||||||
<a name="string_equality"></a>
|
<a name="string_equality"></a>
|
||||||
##### 字符串相等 (String Equality)
|
##### 字符串相等 (String Equality)
|
||||||
@ -271,7 +271,7 @@ if quotation == sameQuotation {
|
|||||||
两个方法均需要以字符串作为参数传入并传出 **Boolean** 值。
|
两个方法均需要以字符串作为参数传入并传出 **Boolean** 值。
|
||||||
两个方法均执行基本字符串和前缀/后缀字符串之间逐个字符的比较操作。
|
两个方法均执行基本字符串和前缀/后缀字符串之间逐个字符的比较操作。
|
||||||
|
|
||||||
下面的例子以一个字符串数组表示莎士比亚话剧`罗密欧与朱丽叶`中前两场的场景位置:
|
下面的例子以一个字符串数组表示莎士比亚话剧《罗密欧与朱丽叶》中前两场的场景位置:
|
||||||
|
|
||||||
```
|
```
|
||||||
let romeoAndJuliet = [
|
let romeoAndJuliet = [
|
||||||
|
|||||||
Reference in New Issue
Block a user