String 迭代go字符串并从go中的字符生成字符串

String 迭代go字符串并从go中的字符生成字符串,string,go,String,Go,我开始学习围棋,我想实现一些算法。我可以迭代字符串,然后得到字符,但这些字符是Unicode数字 如何在go中将字符连接成字符串?你有参考资料吗?我在官方页面上找不到任何关于原语的信息。使用+ str:= str + "a" 您可以尝试以下方法: string1 := "abc" character1 := byte('A') string1 += string(character1) 甚至可能会有所帮助。使用迭代字符串可以在 使用索引对字符串进行迭代可以得到字节。有关详细信息,请参见规范

我开始学习围棋,我想实现一些算法。我可以迭代字符串,然后得到字符,但这些字符是Unicode数字

如何在go中将字符连接成字符串?你有参考资料吗?我在官方页面上找不到任何关于原语的信息。

使用
+

str:= str + "a"
您可以尝试以下方法:

string1 := "abc"
character1 := byte('A')
string1 += string(character1)

甚至可能会有所帮助。

使用迭代字符串可以在 使用索引对字符串进行迭代可以得到字节。有关详细信息,请参见规范 以及他们的

正如新的白痴所提到的,字符串可以使用

从字符到字符串的转换是双重的。你可以转换 将
字节
(或字节序列)转换为字符串:

string(byte('A'))
string(rune('µ'))
string(byte('A'))
string(rune('µ'))
或者您可以将
符文
(或符文序列)转换为字符串:

string(byte('A'))
string(rune('µ'))
string(byte('A'))
string(rune('µ'))
区别在于符文表示Unicode字符,而字节表示 8位值

但所有这些都在我上面链接的规范的相应章节中提到。
这很容易理解,你应该仔细阅读。

你可以直接将
[]符文转换为字符串:

string([]rune{'h', 'e', 'l', 'l', 'o', '☃'})

作为参考,它在Go规范的转换部分,在标题为“与字符串类型的转换”的部分


至于连接,您可能不希望使用
+
操作符连接每个字符,因为这将在后台执行大量复制。如果你一次只获取一个符文,而不是构建一个中间的符文片段,那么你很可能希望使用
bytes.Buffer
,它有一个
WriteRune
方法来处理这类事情

绝对值得一读@nemo的帖子


使用range遍历字符串可以得到Unicode字符,而使用索引遍历字符串可以得到字节。请参阅符文和字符串及其转换的规范

可以使用+运算符连接字符串

从字符到字符串的转换是双重的。您可以将字节(或字节序列)转换为字符串:

string(byte('A'))
string(rune('µ'))
string(byte('A'))
string(rune('µ'))
或者,您可以将符文(或符文序列)转换为字符串:

string(byte('A'))
string(rune('µ'))
string(byte('A'))
string(rune('µ'))

感谢您解释使用索引进行迭代和使用范围进行迭代之间的区别,那么“字符”到底是什么?围棋中没有这样的类型