要約はじめに:
実際には、一般的な物事のクラスの属性(フィールド)と振る舞い(メソッド)は物理モデル(テンプレート)を形成するために抽出され、構造体の定義では、このメソッドは抽象的研究の質問と呼ばれています。
パッケージ:
フィールドのため、唯一、一緒にパッケージのフィールドとフィールドの動作の抽象保護されるべきデータ内で、他のプログラム・パッケージは、許可動作(方法)によって動作させることができます。
最初の文字の小文字の1)構造、フィールド(属性)
2)コンストラクタと同様工場モード機能、イニシャル、袋構造を提供すること
3)特性および割り当てを決定するために、公共の他の言語と同様大文字セット()のための方法を提供すること
model.go
パッケージモデル インポート( " FMT " ) タイプのアカウントのstruct { ユーザ名の文字列 パスワード文字列 バランスのfloat64 } FUNC NewAccount() * アカウント{ リターン・アカウント{} } // アカウントを設定 FUNC(ユーザー・アカウント)SetUsername(ユーザ名の文字列){ 場合 lenを(ユーザ名)<6 && LEN(ユーザ名)> 10 { fmt.Println(「アカウントの長さは6-10でなければならない」) のリターン } user.username = ユーザ名 } FUNC(ユーザー * アカウント)GetUsername()文字列{ 戻りuser.username } // パスワードを設定 FUNC(ユーザー * アカウント)SetPasswordの(パスワード文字列){ 場合(パスワード)でlen!= 6 { fmt.Println(「パスワードは6でなければならない」) のリターン } user.password = パスワード } FUNC(ユーザー * アカウント)GETPASSWORD()文字列{ 戻りuser.password } // バランスを設定 FUNC(ユーザー・アカウント)SetBalance(バランスのfloat64){ もしバランス<20 { fmt.Println(「バランスがある20以上である」) のリターン } user.balance = バランス } FUNC(ユーザー * アカウント)GetBalance()のfloat64 { 戻りuser.balance }
main.go
パッケージメイン インポート( 「FMT 」 「モデル」 ) FUNCのmain(){ ユーザー: = model.NewAccount() user.SetUsername(" admin123 " ) user.SetPassword(" 123456 " ) user.SetBalance( 20 ) fmt.Println(user.GetUsername()、user.GetPassword()、user.GetBalance()) }
継承: