web-dev-qa-db-fra.com

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

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

La documentation dit:

NewKey crée une nouvelle clé. genre ne peut pas être vide. L'un ou les deux stringID et intID doivent être zéro . Si les deux sont égaux à zéro, la clé retourné est incomplet. le parent doit être soit une clé complète, soit nil.

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

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

cannot use nil as type string in function argument
114
DeanSinaean

C'est "":

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

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

Vous pouvez simplement tester

if stringId=="" {

Pour passer une chaîne nulle dans stringID, utilisez

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

De le cahier des charges :

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

205
Denys Séguret

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

0
Noypi Gilas