Maison > développement back-end > Golang > Définir une valeur int64 sur un pointeur *int64

Définir une valeur int64 sur un pointeur *int64

WBOY
Libérer: 2024-02-10 09:06:22
avant
630 Les gens l'ont consulté

将 int64 值设置为 *int64 指针

L'éditeur PHP Xigua est là pour vous présenter un problème concernant la définition d'une valeur int64 sur un pointeur int64. En programmation, nous avons souvent besoin de manipuler des pointeurs pour modifier la valeur des variables. Pour les variables de type int64, on peut modifier leurs valeurs en les définissant sur des pointeurs int64. Cette opération est très utile dans certaines situations et peut nous aider à traiter les données de manière plus flexible. Ensuite, analysons ce problème en détail et donnons un exemple de code correspondant.

Contenu de la question

J'ai besoin d'une structure de mappage pour créer une structure json. L'attribut collector_id dans json devrait pouvoir prendre une valeur nulle ou une valeur int. J'ai le code suivant :

type purchaseInfo struct {
    CollectorID *int64 `json:"collector_id"`
}

func mapPurchaseInfo(collectorID int64) purchaseInfo {
    var collectorIDToSend *int64
    if collectorID < 0 {
        collectorIDToSend = nil
    } else {
        collectorIDToSend = collectorID
    }

    return purchaseInfo{
        CollectorID: collectorIDToSend,
    }
}
Copier après la connexion

Ce code ne compile pas et ne peut pas attribuer collectorid à collectoridtosend. Y a-t-il un moyen de faire cela?

Merci !

Solution

  • Dans la déclaration de la fonction mappurchaseinfo, afin d'attribuer correctement la valeur passée en paramètre à collectoridtosend, l'opérateur & doit être utilisé pour récupérer l'adresse mémoire du collectorid.
  • Lors de la construction de la variable de retour Purchaseinfo, vous pouvez la mettre directement dans les champs de la structure, comme le montre l'exemple.
type purchaseInfo struct {
        CollectorID *int64 `json:"collector_id"`
    }

    func mapPurchaseInfo(collectorID int64) purchaseInfo {
        var collectorIDToSend *int64
        if collectorID < 0 {
            collectorIDToSend = nil
        } else {
            collectorIDToSend = &collectorID
        }

        return purchaseInfo{
            CollectorID: collectorIDToSend,
        }
    }
Copier après la connexion

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!

source:stackoverflow.com
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