Swift3 字符串索引Swift 3

Swift3 字符串索引Swift 3,swift3,Swift3,我是Swift 3的初学者,遇到了一个使用字符串索引检索字符的示例。我没有安装swift 3,但我怀疑有一点与解释不同。我不知道,这是错误,书写错误还是什么。下面是“Swift编程语言(Swift 3 beta)”第166页的示例 有人可以解释这种行为吗?从“字符串索引”部分: endIndex属性是字符串中最后一个字符之后的位置。因此,endIndex属性不是字符串下标的有效参数 这意味着endIndex实际上与字符串的长度非常相似,最后一个字符位于索引endIndex-1 因此,输出是正确的

我是Swift 3的初学者,遇到了一个使用字符串索引检索字符的示例。我没有安装swift 3,但我怀疑有一点与解释不同。我不知道,这是错误,书写错误还是什么。下面是“Swift编程语言(Swift 3 beta)”第166页的示例

有人可以解释这种行为吗?

从“字符串索引”部分:

endIndex属性是字符串中最后一个字符之后的位置。因此,endIndex属性不是字符串下标的有效参数

这意味着
endIndex
实际上与字符串的长度非常相似,最后一个字符位于索引
endIndex-1


因此,输出是正确的。另外,文档页面上也给出了相同的“Guten Tag!”示例。

我会在7分钟后给出。:)
let greeting = "Guten Tag!"

greeting[greeting.startIndex] //Prints G according to text. Fine according to definition.

greeting[greeting.index(before:greeting.endIndex)] //Prints ! according to text. Now if you look at greeting String, the character before endIndex is g. It must print g according to definition.

greeting[greeting.index(after:greeting.startIndex)] //Prints u according to text and is right according to definition also.