gpt4 book ai didi

string - Go:理解字符串

转载 作者:IT王子 更新时间:2023-10-29 01:20:36 25 4
gpt4 key购买 nike

今天早上当下面的代码起作用时,我有点困惑。

// s points to an empty string in memory
s := new(string)

// assign 1000 byte string to that address
b := make([]byte, 0, 1000)
for i := 0; i < 1000; i++ {
if i%100 == 0 {
b = append(b, '\n')
} else {
b = append(b, 'x')
}
}
*s = string(b)

// how is there room for it there?
print(*s)

http://play.golang.org/p/dAvKLChapd

我觉得我在这里遗漏了一些明显的东西。一些见解将不胜感激。

最佳答案

我希望我理解了这个问题...

字符串类型的实体大致由运行时结构实现

type rt_string struct {
ptr *byte // first byte of the string
len int // number of bytes in the string
}

线

*s = string(b)

在 *s 处设置一个新值(rt_string 类型)。它的大小是恒定的,所以它有“空间”。

rsc 的 paper 中有更多详细信息.

关于string - Go:理解字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16106748/

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