128 votes

golang : quel est le zéro de la chaîne de caractères ?

func NewKey(c appengine.Context, kind, stringID string, intID int64, parent *Key) *Key

La documentation indique que :

NewKey crée une nouvelle clé. kind ne peut pas être vide. L'un ou l'autre des éléments suivants, ou les deux stringID et intID doivent être zéro . Si les deux sont nuls, la clé retournée est incomplète. parent doit être soit une clé complète, soit nil.

Quel est le zéro de la chaîne ?

J'ai essayé 0 y nil et j'ai eu des erreurs comme :

cannot use nil as type string in function argument

220voto

dystroy Points 145126

C'est "" :

var s string
fmt.Println(s=="") // prints "true"

Une chaîne ne peut pas être nulle (mais une *string peut).

Vous pouvez simplement tester

if stringId=="" {

Pour passer une chaîne de zéro dans stringID utiliser

k := NewKey(c, "kind", "", 0, p)

De la spécification :

Lorsque la mémoire est allouée pour stocker une valeur, soit par le biais d'une déclaration ou d'un appel de make ou new, et qu'aucune initialisation explicite n'est fournie, la mémoire reçoit une initialisation par défaut. Chaque élément de élément d'une telle valeur est défini par la valeur zéro de son type : false pour les booléens, 0 pour les entiers, 0.0 pour les flottants, "" pour les chaînes de caractères et nil pour les pointeurs, les fonctions, les interfaces, les tranches, les canaux et les cartes.

0voto

Noypi Points 177

Dans ce cas une chaîne vide, ou vous pouvez utiliser NewIncompleteKey()

0voto

hurricane1026 Points 31
var str string
fmt.Println(str == "")

mettez ce qui précède dans votre script, et allez l'exécuter.

vous pouvez obtenir le vrai, la valeur par défaut de la chaîne de caractères de golang est "".

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X