Maison > développement back-end > Golang > Analyse du problème de ne pas pouvoir obtenir l'adresse en golang

Analyse du problème de ne pas pouvoir obtenir l'adresse en golang

王林
Libérer: 2019-12-24 16:46:12
original
3716 Les gens l'ont consulté

Analyse du problème de ne pas pouvoir obtenir l'adresse en golang

L'exemple de code est le suivant :

func main() {
    var a Integer = 1
    var b Integer = 1
    sum := a.Add(b)
    fmt.Println(sum)

    var i interface{} = a
    sum = i.(Integer).Add(b) // 报错
    fmt.Println(sum)
}

type Integer int

func (a *Integer) Add(b Integer) Integer {
    return  *a + b
}
Copier après la connexion

Le message d'erreur est le suivant :

test\testVar.go:16:19: cannot call pointer method on i.(Integer)
test\testVar.go:16:19: cannot take the address of i.(Integer)
Copier après la connexion

Cette situation se produit car la méthode Add nécessite un type de pointeur entier Le récepteur, et le i.(Integer) que nous avons passé est une valeur, et cette valeur n'est affectée à aucune variable, donc le symbole "&" ne peut pas obtenir l'adresse.

La bonne méthode consiste à attribuer i.(Integer) à une variable ou à changer le récepteur de méthode en un type normal.

Les exemples de code sont les suivants :

   var i interface{} = a
    c := i.(Integer)
    sum = c.Add(b)
    fmt.Println(sum)
Copier après la connexion

ou

func (a Integer) Add(b Integer) Integer {    
return  a + b
}
Copier après la connexion

Articles et tutoriels connexes recommandés : tutoriel golang

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal