Maintenant que j'ai fini de regarder l'édition "Pointer" du cours udemy, je vais l'examiner.
Cette fois aussi, j'ai appris le fonctionnement de base en sortant sur la console.
・ Apprenez le Go en regardant [Introduction à Go enseignée par des ingénieurs actifs de la Silicon Valley + Développement de l'application Bitcoin Systre Fintech par application]](https://www.udemy.com/course/go-fintech/) Pendant ~
・ L'environnement de développement est VS Code + plug-in (la version Go est la 1.15) ・ Le système d'exploitation est Windows ・ J'utilise généralement Java.
-Si vous spécifiez une variable de type pointeur, vous pouvez directement écraser le contenu de la mémoire. ・ S'il est difficile à comprendre, ajoutez "&" et "*" et déplacez-le de manière appropriée pour comprendre. -Lors de la génération d'un type de pointeur, utilisez "new" au lieu de "make".
python
func one(x int) {
    //Recevoir uniquement les valeurs de la fonction principale
	fmt.Println(&x)
	x = 1
}
func two(x *int) {
    //Reçoit l'adresse de x dans une zone de type pointeur.
	fmt.Println(&x)
	//Écraser directement le contenu de l'adresse
	*x = 2
}
func main() {
	var n int = 100
    //L'adresse mémoire est sortie
	fmt.Println(&n)
	//Entrez l'adresse de type de point d'un entier (identique au langage C)
	var p *int = &n
	fmt.Println(p)
	//Lorsque vous voulez voir le contenu de la mémoire pointé par l'adresse
	fmt.Println(*p)
	one(n)
	//Puisque n dans l'argument de un est une copie, cela n'a aucun effet sur n dans la fonction.
	fmt.Println(n) //100 est la sortie
	two(&n)
	fmt.Println(n)  //2 est la sortie
}
Je n'ai pas compris ce "pointeur", mais l'article "Pointeur et adresse pour apprendre avec Go" et le lien cité dans l'article L'explication ci-dessus était facile à comprendre. Puisqu'il s'agit d'un concept dérivé du langage C, il semble qu'il existe des connaissances que de nombreux seniors ont eu du mal à accumuler.
-Une structure peut être définie avec "
python
type Vertex struct {
	//La variable commence par le capital
	//Traité comme privé lorsqu'il est réduit
	X int
	Y int
	S string
}
func changeVertex(v Vertex) {
	v.X = 1000
}
func changeVertex2(v *Vertex) {
	v.X = 1000
	(*v).X = 1000 //C'est la manière correcte de l'écrire, mais dans le cas de struct, il fait automatiquement référence au pointeur réel.
}
func prg3() {
    //Génération de structure
	v := Vertex{X: 1, Y: 2}  //Les valeurs initiales sont saisies pour les variables non définies
	changeVertex(v)          //Passer la structure par valeur (copie)
	fmt.Println(v)           //Résultat de sortie:{1 2 }
	v.X = 100                //Des variables peuvent également être spécifiées
	fmt.Println(v.X, v.Y)    //Résultat de sortie: 100 2
	v2 := &Vertex{1, 2, "text"}
	changeVertex2(v2)
	fmt.Println(v2)          //Résultat de sortie:&{1000 2 text}
	var v3 Vertex
	fmt.Println(v3)          //Notez que ce n'est pas nul. Celui avec la valeur initiale est construit
                             //Résultat de sortie:{0 0 }
	v4 := new(Vertex)
	fmt.Println(v4)          //Résultat de sortie de type pointeur:&{0 0 }
	v5 := &Vertex{}
	fmt.Println(v5)          //Il a le même contenu que le type pointeur v6, mais il est plus facile de le distinguer du type pointeur.
}
・ Il est difficile de comprendre le concept de pointeurs. -La structure ressemble à un objet java.
 Dernier message 
・ Grammaire de base ① Définition
・ Déclaration de grammaire de base ②
Recommended Posts