Avatar ·

Cómo verificar si un map contiene una clave específica en Go

¡Hola a todos! Acabo de empezar a aprender Go y tengo un problema con la verificación de la existencia de una clave en un map. En Python estoy acostumbrado a escribir `if key in dict:`, pero en Go no existe esa construcción. Supongamos que tengo un map de usuarios: ```go users := map[int]string{ 1: "Alice", 2: "Bob", 3: "Charlie", } ``` Necesito verificar si existe un usuario con ID = 4. Probé este código: ```go if users[4] != "" { fmt.Println("User found!") } ``` Pero esto no funciona si el valor de la clave es una cadena vacía. Por ejemplo, si agrego `4: ""`, mi código no puede distinguir entre la ausencia de la clave y un valor vacío. Lo mismo ocurre con maps numéricos: si el valor es 0, la verificación también falla. Sé que en Go, al acceder a una clave inexistente, se devuelve el valor cero del tipo. Pero entonces, ¿cómo puedo verificar correctamente si una clave existe en un map, sin riesgo de obtener un falso positivo o falso negativo? Especialmente me interesa el caso donde el valor cero (0, "", false) es un valor válido.