ホームページ >バックエンド開発 >Golang >golangにはクラスがありますか?

golangにはクラスがありますか?

青灯夜游
青灯夜游オリジナル
2019-12-30 11:30:539319ブラウズ

golangにはクラスがありますか?

golang にはクラスがありますか?

Golang にはクラスがありません。

golang には明確なオブジェクト指向の記述がなく、オブジェクト指向言語とみなされません。理由:

  1. golang はカプセル化のみをサポートし、継承とポリモーフィズムをサポートしません

  2. golang には構造体のみがあり、クラスはありません

本当に接続したい場合は、構造体を他の言語のクラスと比較できます。

クラス宣言

type Poem struct {
    Title  string
    Author string
    intro  string
}

これは、public、protected、または private 宣言を使用せずにクラスを宣言します。

Golang は別のアプローチを使用して属性のアクセス許可を実装します。属性の最初の文字が大文字の場合は、他のパッケージでアクセスできます。それ以外の場合は、このパッケージでのみアクセスできます。クラス宣言とメソッドについても同様です。

クラスメソッド宣言

func (poem *Poem) publish() {
    fmt.Println("poem publish")
}

または

func (poem Poem) publish() {
    fmt.Println("poem publish")
}

は他の言語と異なります Golang の宣言方法が異なりますfromnormal 方法は同じですが、func の後に詩 Poem のようなステートメントが追加されます。 * を追加する場合と追加しない場合の違いは、1 つはポインター オブジェクトを渡し、もう 1 つは値オブジェクトを渡すことです。

関連する推奨事項: golang チュートリアル

以上がgolangにはクラスがありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。