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
WBOYavant
2024-02-10 09:06:22607parcourir

将 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,
    }
}

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,
        }
    }

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer