我正在尝试为我正在处理的 Lambda 项目找出内存文件操作。这个虚拟程序说明了我的无知:
package main
import (
"bytes"
"fmt"
"log"
)
func Append(input *[]byte, appendee string) (err error) {
buf := bytes.NewBuffer(*input)
if _, err := buf.WriteString(appendee); err != nil {
log.Println(err)
}
return err
}
func main() {
test := "this is a test\nThis test is short\nBut longer tests would work also\n"
b := []byte(test)
fmt.Println(b)
err := Append(&b, "This is an appended line")
if err != nil {
fmt.Println("oops")
}
fmt.Println(b)
}
我希望 y 在调用 Append 的行中传递对字节数组的引用,该函数可以操作与 main 中的相同数据结构,然后打印将包括附加的行。但事实并非如此。这是执行:
✗ go run test.go
[116 104 105 115 32 105 115 32 97 32 116 101 115 116 10 84 104 105 115 32 116 101 115 116 32
105 115 32 115 104 111 114 116 10 66 117 116 32 108 111 110 103 101 114 32 116 101 115 116
115 32 119 111 117 108 100 32 119 111 114 107 32 97 108 115 111 10]
[116 104 105 115 32 105 115 32 97 32 116 101 115 116 10 84 104 105 115 32 116 101 115 116 32
105 115 32 115 104 111 114 116 10 66 117 116 32 108 111 110 103 101 114 32 116 101 115 116
115 32 119 111 117 108 100 32 119 111 114 107 32 97 108 115 111 10]
我错过了什么?
繁花不似锦
回首忆惘然
相关分类