Avatar ·

¿Cómo verificar si un map contiene una clave en Go?

¡Hola a todos! Acabo de empezar a aprender Go y tengo un problema con los maps. Supongamos que creo un map que almacena usuarios por su ID: ```go users := map[int]string{ 1: "Alice", 2: "Bob", } ``` Necesito verificar si existe un usuario con ID, por ejemplo, 3. Intenté hacerlo así: ```go if users[3] != "" { fmt.Println("User found") } else { fmt.Println("User not found") } ``` Pero esto parece incorrecto porque si el valor está vacío (por ejemplo, el usuario tiene un nombre vacío), la verificación fallará. Además, escuché que en Go, al acceder a una clave inexistente, se devuelve el zero value para el tipo del valor. Para strings es una cadena vacía, para números es 0, para booleanos es false. Pero entonces, ¿cómo distinguir la ausencia de una clave de un valor cero real? ¿Hay alguna forma idiomática de verificar si una clave existe en un map? Leí que en otros lenguajes (por ejemplo, en Python) existe el operador `in`, pero en Go no encontré algo así.