Estoy acostumbrado a Java's String donde podemos pasar null en lugar de "" para significados especiales, como , use un valor predeterminado.¿Cómo tener una función con un parámetro de cadena anulable en Go?
En Go, la cadena es un tipo primitivo, por lo que no puedo pasar nil (nulo) a un parámetro que requiere una cadena.
podría escribir la función utilizando un tipo de puntero, como esto:
func f(s *string)
que realiza la llamada puede llamar a esa función, ya sea como
f(nil)
o
// not so elegant
temp := "hello";
f(&temp)
pero el siguiente es desafortunadamente no permitido:
// elegant but disallowed
f(&"hello");
¿Cuál es la mejor manera de tener un parámetro que reciba una cadena o nulo?
Creo que necesitas soltar Java y acostumbrarte a la forma de Go. ¿Por qué necesitas pasar un nil en lugar de una cadena? ¿Qué quieres lograr? PD. también puedes usar fmt.Printf (* nuevo (cadena)) - que es 'cero' para el tipo cadena –