以下のようなコードを写経して一部を書いてみたのですが、書いてる途中に疑問に思ったので質問させて頂きます。
タイトルにもある通りですが、構造体を書いてメソッドにするのか関数にするのか?ということです。
まずSave()をメソッドにするのか関数にするのかというところで、確かにPageの構造体に紐づいている処理なのでわかる気もしますが
LoadPage()の方はメソッドでもいいのでは?と思ってしまいます。
宜しくお願いいたします。
コードはGoのチュートリアルにある簡単なWebApplicationです。Txtファイルを保存したり読み込んだりします。
go
type Page struct { Title string Body []byte} func (p *Page) Save() { filename := p.Title + ".txt" return ioutill.Writefile(filename, p.Body, 0666)} func LoadPage(title string) (*Page, error) { filename := title + ".txt" body, err := ioutill.Readfile(filename) if err != nil { return nil, err } return &Page{Title: title, Body: body}, nil} func main() { p1 := &Page{Title: "test", Body: []byte("this is a sample page")} p1.Save() p2, _ := LoadPage(p1.Title) fmt.Println(string(p2.Body))}
0 コメント