我在这里阅读GO OS文档https://golang.org/pkg/os/
文档提供此代码
file, err := os.Open("file.go") // For read access.
if err != nil {
log.Fatal(err)
}
然后这个
data := make([]byte, 100)
count, err := file.Read(data)
if err != nil {
log.Fatal(err)
}
但是当我在这个例子中使用它时,我得到了非声明的外部函数体。
我应该如何使用此示例中的文档代码?
package main
import (
"encoding/xml"
"fmt"
"log"
"os"
)
type doc struct {
Meeting meeting `xml:"meeting"`
}
type meeting struct {
Race race `xml:"race"`
}
type race struct {
ID int `xml:"id,attr"`
Name string `xml:"name,attr"`
Distance int `xml:"distance,attr"`
Noms []nomination `xml:"nomination"`
}
type nomination struct {
Number int `xml:"number,attr"`
ID int `xml:"id,attr"`
Horse string `xml:"horse,attr"`
Weight int `xml:"weight,attr"`
Rating int `xml:"rating,attr"`
}
func main() {
d := doc{}
err := xml.Unmarshal(file, &d)
if err != nil {
log.Fatalf("Unable to unmarshal XML: %s\n", err)
}
fmt.Printf("%#v\n", d)
}
file, err := os.Open("file.go") // For read access.
if err != nil {
log.Fatal(err)
}
data := make([]byte, 100)
count, err := file.Read(data)
if err != nil {
log.Fatal(err)
}
答案 0 :(得分:0)
您收到的错误会告诉您究竟出了什么问题。您的代码在函数体之外。只有声明可以在函数体之外。您需要将代码移动到main()或其他主要调用的函数中。