var str = "Hello"
print(str.characters) // CharacterView(_core: Swift._StringCore(_baseAddress: Optional(0x000000011c9a68a0), _countAndFlags: 5, _owner: nil))
print(str.characters.index(of: "o")!) // Index(_base: Swift.String.UnicodeScalarView.Index(_position: 4), _countUTF16: 1)
print(Array(str.characters)) // ["H", "e", "l", "l", "o"]
print(str.characters.map{String($0)}) //["H", "e", "l", "l", "o"]
for character in str.characters{
print(character)
}
// H
// e
// l
// l
// o
我看了this的问题。我从Swift参考文献中找到String
,发现:var characters: String.CharacterView
。String成员'characters'返回什么?
然而我不知道究竟是str.characters
返回?它是如何,我可以列举到就那么轻易,或转换它给数组或地图,但然后再打印本身甚至索引时把它打印乱码等等
我敢肯定我不明白的是因为不了解characterView
。我希望有人能够向外行介绍一下它在这个问题上的作用和意义。
您不仅应该查看'CharacterView'文档,还应该查看它符合的协议的文档,这些都是您正在查找的内容。例如,您可以枚举'CharacterView',因为它符合'Sequence'协议。 – Fantattitude
@Fantattitude我只是重新读一遍,仍然失去了 – Honey