Maison >développement back-end >Golang >Golang a-t-il une classe d'usine ?

Golang a-t-il une classe d'usine ?

青灯夜游
青灯夜游original
2023-01-03 16:58:593933parcourir

golang n'a pas de classe d'usine car golang ne prend pas en charge les classes. Il n'y a pas d'instruction clairement orientée objet dans golang, et il ne peut pas être considéré comme un langage orienté objet car : 1. golang ne prend en charge que l'encapsulation et ne prend pas en charge l'héritage et le polymorphisme 2. golang n'a qu'une structure, pas une classe ; Bien entendu, struct peut également être comparé à class dans d’autres langues.

Golang a-t-il une classe d'usine ?

L'environnement d'exploitation de ce tutoriel : système Windows 7, GO version 1.18, ordinateur Dell G3.

golang n'a pas de classe d'usine car golang ne prend pas en charge les classes.

Il n'y a pas d'énoncé clair orienté objet dans Golang, et il ne peut pas être considéré comme un langage orienté objet. Parce que :

  • golang ne prend en charge que l'encapsulation, pas l'héritage et le polymorphisme

  • golang n'a qu'une structure, pas de classe

Si vous voulez vraiment établir une connexion, vous pouvez comparer la structure à la classe dans d'autres langues.

Déclaration de classe

type Poem struct {
    Title  string
    Author string
    intro  string
}

Cela déclare une classe sans déclarations publiques, protégées ou privées.

Golang utilise une autre approche pour implémenter les autorisations d'accès aux attributs : si la lettre initiale de l'attribut est en majuscule, il est accessible dans d'autres packages, sinon il n'est accessible que dans ce package. Il en va de même pour les déclarations de classe et les méthodes.

Déclaration de méthode de classe

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

ou

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

est différente des autres langues. La méthode de déclaration golang est la même que la méthode ordinaire, sauf qu'une déclaration comme poème Poème est ajoutée après func. La différence entre ajouter et ne pas ajouter * est que l'un passe un objet pointeur et l'autre passe un objet valeur.

【Recommandations associées : Tutoriel vidéo Go, Enseignement de la programmation

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Le golang est-il chinois ?Article suivant:Le golang est-il chinois ?