Go 语言中如何获取字符串的长度?

推荐答案

在 Go 语言中,可以使用 len() 函数来获取字符串的长度。示例如下:

-- -------------------- ---- -------
------- ----

------ -
------
-

---- ------ -
---- -- ------- ---
------- -- --------
------------------------ -------
-

输出结果为:

本题详细解读

1. len() 函数的作用

len() 是 Go 语言内置的函数,用于获取字符串、数组、切片、映射等数据类型的长度。对于字符串,len() 返回的是字符串的字节数,而不是字符数。

2. 字符串的字节长度与字符长度

在 Go 语言中,字符串是以 UTF-8 编码的字节序列。因此,len() 函数返回的是字符串的字节长度,而不是字符长度。对于 ASCII 字符,字节长度和字符长度是相同的,但对于非 ASCII 字符(如中文、日文等),一个字符可能由多个字节组成。

例如,字符串 "Hello, 世界" 中:

  • "Hello, " 是 7 个 ASCII 字符,每个字符占用 1 个字节,共 7 个字节。
  • "世界" 是 2 个中文字符,每个字符占用 3 个字节,共 6 个字节。
  • 因此,整个字符串的字节长度为 13。

3. 获取字符长度的方法

如果需要获取字符串的字符长度(即 Unicode 字符数),可以使用 unicode/utf8 包中的 RuneCountInString() 函数。示例如下:

-- -------------------- ---- -------
------- ----

------ -
------
---------------
-

---- ------ -
---- -- ------- ---
------- -- ---------------------------
-------------------------- -------
-

输出结果为:

4. 总结

  • 使用 len() 函数可以获取字符串的字节长度。
  • 使用 utf8.RuneCountInString() 函数可以获取字符串的字符长度。
  • 在处理包含非 ASCII 字符的字符串时,需要注意字节长度与字符长度的区别。
纠错
反馈