以下のようなコードを写経して一部を書いてみたのですが、書いてる途中に疑問に思ったので質問させて頂きます。
タイトルにもある通りですが、構造体を書いてメソッドにするのか関数にするのか?ということです。
まずSave()をメソッドにするのか関数にするのかというところで、確かにPageの構造体に紐づいている処理なのでわかる気もしますが
LoadPage()の方はメソッドでもいいのでは?と思ってしまいます。
宜しくお願いいたします。
コードはGoのチュートリアルにある簡単なWebApplicationです。Txtファイルを保存したり読み込んだりします。
go
1type Page struct { 2 Title string 3 Body []byte 4} 5 6func (p *Page) Save() { 7 filename := p.Title + ".txt" 8 return ioutill.Writefile(filename, p.Body, 0666) 9} 10 11func LoadPage(title string) (*Page, error) { 12 filename := title + ".txt" 13 body, err := ioutill.Readfile(filename) 14 if err != nil { 15 return nil, err 16 } 17 return &Page{Title: title, Body: body}, nil 18} 19 20 21func main() { 22 p1 := &Page{Title: "test", Body: []byte("this is a sample page")} 23 p1.Save() 24 25 p2, _ := LoadPage(p1.Title) 26 fmt.Println(string(p2.Body)) 27}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。