- 如下图所示,我们定义str1,用sizeof查看其字节数为5 = 3 + 1+ 1
- 做切片操作,奇怪的事情出现了:
-
str1[1] = '∀'; str1[4] = ' '; str1[5] = 'b'
-
str1[2]
会报错ERROR: StringIndexError("∀ b", 2)
,`str1[3]也是如此
-
而计算字符的字节数,结果也很奇怪:
sizeof('∀') = 4; sizeof(' ') = 4; sizeof('b') = 4
- 困惑主要有以下几点:
-
做字符串切片操作的时候,为什么不是按字符(Char)编号,而是按字节(byte),这样不是会给切片操作带来诸多问题吗。
-
sizeof(char::Char)返回的为什么不是字节数,返回的4又是什么;我也未找到sizeof(char::Char)调用的generic function