Détermination de l'attribution des propriétés dans les structures
De nombreux scénarios de programmation impliquent de travailler avec des structures et leurs propriétés. Une question courante qui se pose est de savoir comment déterminer si une propriété spécifique au sein d’une structure s’est vu attribuer une valeur. Cet article explorera une solution à ce problème.
Dans Go, les structures sont des types valeur, ce qui signifie que l'attribution d'une nouvelle valeur à une propriété de structure crée une nouvelle copie de la structure. Ce comportement peut compliquer la vérification si une propriété a été définie.
Comme suggéré par dyoo dans la réponse fournie, une approche consiste à utiliser des valeurs nulles. Si la propriété est un pointeur, vous pouvez vérifier si elle est nulle pour déterminer si la propriété a été définie. Cependant, cette approche n'est pas applicable si la propriété n'est pas un pointeur.
Vous pouvez également comparer la valeur de la propriété à une valeur par défaut, telle qu'une chaîne vide. L'exemple suivant illustre cette approche :
package main import "fmt" type MyStruct struct { Property string } func main() { s1 := MyStruct{ Property: "hey", } s2 := MyStruct{} if s1.Property != "" { fmt.Println("s1.Property has been set") } if s2.Property == "" { fmt.Println("s2.Property has not been set") } }
Dans cet exemple, si le champ Propriété de s1 n'est pas vide, le code indique qu'il a été défini. À l'inverse, si le champ Propriété de s2 est vide, le code indique qu'il n'a pas été défini.
Cette approche vous permet de déterminer si une propriété struct s'est vu attribuer une valeur, que la propriété soit ou non une propriété. pointeur ou pas. En comparant la valeur de la propriété à une valeur par défaut, vous pouvez vérifier efficacement l'affectation.
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!