【Go】構造体を作成したあと、メソッドか関数でどちらを作成すればいいか迷ってしまいます。

以下のようなコードを写経して一部を書いてみたのですが、書いてる途中に疑問に思ったので質問させて頂きます。

タイトルにもある通りですが、構造体を書いてメソッドにするのか関数にするのか?ということです。

まず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 コメント