wiki_part1.go 559 B

1234567891011121314151617181920212223242526272829303132
  1. package main
  2. import (
  3. "fmt"
  4. "io/ioutil"
  5. )
  6. type Page struct {
  7. Title string
  8. Body []byte
  9. }
  10. func (p *Page) save() error {
  11. filename := p.Title + ".txt"
  12. return ioutil.WriteFile(filename, p.Body, 0600)
  13. }
  14. func load(title string) (*Page, error) {
  15. filename := title + ".txt"
  16. body, err := ioutil.ReadFile(filename)
  17. if err != nil {
  18. return nil, err
  19. }
  20. return &Page{Title: title, Body: body}, nil
  21. }
  22. func main() {
  23. p1 := &Page{Title: "TestPage", Body: []byte("This is a sample Page.")}
  24. p1.save()
  25. p2, _ := load("TestPage")
  26. fmt.Println(string(p2.Body))
  27. }