我正在尝试学习用于网络编程的 Go。我一直在学习这门语言,最近我开始了 this Go 语言官方网站上的教程。
到目前为止,我一直停留在数据结构部分。我已经逐字复制代码。
代码如下:
package main
import (
"fmt"
"io/ioutil"
)
type Page struct {
Title string
Body []byte
}
func (p *Page) save() (error) {
filename := p.Title + ".txt"
return ioutil.WriteFile(filename, p.Body, 0600)
}
func loadPage(title string) (*Page, error) {
filename := title + ".txt"
body, err := ioutil.ReadFile(filename)
if err != nil {
return nil, err
}
return &Page{Title: title, Body: body}, nil
}
func main() {
p1 := &Page{Title: "TestPage", Body: []byte("WHADDUP!")}
p1.save
p2, _ := loadPage("TestPage")
fmt.Println(string(p2.Body))
}
运行 $ go build wiki.go
得到以下结果:
# command-line arguments
./main.go:30: p1.save evaluated but not used
我哪里错了?在我看来,除了保存到文件中的字符串外,我已经逐字复制了代码。
最佳答案
p1.save
是一个函数,所以,像这样写,它什么都不做,这是编译器“警告”你的(但是对于 Go,什么可能是警告实际上是一个错误并阻止了编译)。
您可能需要的是 p1.save()
,它与 p1.save
不同,它实际上会运行该函数。
关于web-applications - golang 网络编程教程代码不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23306456/