gpt4 book ai didi

string - 为什么字符串不能被整数值索引

转载 作者:搜寻专家 更新时间:2023-10-31 22:59:59 25 4
gpt4 key购买 nike

我了解到 Swift 字符串不能按整数值索引。我记得它并且我使用规则。但我从未完全理解其背后的机制。

来自官方文档的解释如下

"不同的字符可能需要不同数量的内存来存储,因此为了确定哪个字符位于特定位置,您必须从该字符串的开头或结尾迭代每个 Unicode 标量。出于这个原因, Swift 字符串不能被整数值索引"

看了好几遍,还是不太明白。有人可以向我解释一下为什么 Swift String 不能按整数值索引吗?

非常感谢

最佳答案

字符串作为字节数组存储在内存中。

一个给定的字符可能需要 1 到 4 个字节作为基本代码点,加上任意数量的组合变音标记。

例如,é 需要 2 个字节。

现在,如果您有字符串 efghéfgh,要访问第二个字符 (f),对于第一个字符串,字符位于索引 1 的字节数组中,对于第二个字符串,它位于索引 2

为了知道这一点,您需要检查第一个字符。要根据其索引访问任何字符,您需要遍历所有前面的字符以了解每个字符占用多少字节。

关于string - 为什么字符串不能被整数值索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37860271/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com