string - strip_tags - ¿Cuál es el cero para la cadena?
template strings html (3)
func NewKey(c appengine.Context, kind, stringID string, intID int64, parent *Key) *Key
La documentación dice:
NewKey crea una nueva clave. kind no puede estar vacío. Cualquiera de los dos, stringID e intID debe ser cero . Si ambos son cero, la clave devuelta es incompleta. el padre debe ser una clave completa o nulo.
¿Cuál es el cero para la cadena?
Intenté 0
y nil
, y obtuve errores como:
cannot use nil as type string in function argument
Eso es ""
:
var s string
fmt.Println(s=="") // prints "true"
Una cadena no puede ser nula (pero una *string
puede).
Simplemente puede probar
if stringId=="" {
Para pasar una cadena cero en stringID
, use
k := NewKey(c, "kind", "", 0, p)
De la especificación :
Cuando la memoria se asigna para almacenar un valor, ya sea a través de una declaración o una llamada de make o new, y no se proporciona una inicialización explícita, la memoria recibe una inicialización predeterminada. Cada elemento de dicho valor se establece en el valor cero para su tipo: falso para booleanos, 0 para enteros, 0.0 para flotantes, "" para cadenas y nulo para punteros, funciones, interfaces, sectores, canales y mapas.
en este caso cadena vacía, o puede usar NewIncompleteKey ()
var str string
fmt.Println(str == "")
ponga arriba en su script, y vaya a ejecutarlo.
puedes obtener el verdadero valor predeterminado de la cadena de golang es "".