web-applications - golang 网络编程教程代码不起作用

标签 web-applications web methods struct go

我正在尝试学习用于网络编程的 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/

相关文章:

c# - 如何使我的 Web 项目中的链接图像出现在我的本地开发 Web 服务器上?

java - 在 Tomcat 上下文之外使用 Hibernate

dns - 为什么更新域的名称服务器需要这么长时间?

javascript - 如何动态读取本地文件?

java - 我应该在 Web 应用程序的 Java bean 中添加对 PropertyChangeSupport 和 PropertyChangeListener 的支持吗?

java - Stripes 链接事件触发的验证不正确

html - 提供静态内容目录的快速路由

Java 语言构造表明参数不会发生变化?

c++ - 将数据类型作为字符串放入模板参数中 - C++

objective-c - iOS 子类化和强制方法