我正在尝试学习Go for web programming。我一直在学习这门语言,最近我在go官方网站上开始了this教程。
到目前为止,我仍然坚持使用Data Structures部分。我已经逐字复制了代码。
以下是代码:
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
我错了什么?在我看来,我已经逐字复制了代码,除了保存到文件中的字符串。
答案 0 :(得分:3)
p1.save
是一个函数,所以,这样编写,它没有做任何事情,这就是编译器是"警告"你呢(但是使用Go,可能是一个警告实际上是一个错误并阻止编译)。
您可能想要的是p1.save()
,与p1.save
不同,它实际上会运行该功能。