"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo puedo comprobar de manera eficiente la existencia de claves en varios mapas Go?

¿Cómo puedo comprobar de manera eficiente la existencia de claves en varios mapas Go?

Publicado el 2024-12-22
Navegar:752

How Can I Efficiently Check for Key Existence Across Multiple Go Maps?

Comprobación eficiente de la existencia de claves en varios mapas

En Go, es común trabajar con mapas, que son estructuras de datos eficientes para recuperar claves. -pares de valores. Sin embargo, el código proporcionado por el desarrollador demuestra la necesidad de verificar la existencia de una clave en dos mapas separados. La pregunta sigue siendo si este proceso se puede hacer más conciso.

Como se explica en la respuesta, el uso de la forma especial v, ok := m[k] en Go para verificar la existencia de claves se limita a asignaciones de una sola variable. . Por lo tanto, combinar las dos comprobaciones en una si la condición mediante este formulario no es factible.

Sin embargo, existen enfoques alternativos para lograr la funcionalidad deseada:

  1. Asignación de tuplas:
    Si el tipo de valor del mapa es un tipo de interfaz y puede asegurarse de que no se utilice el valor nulo, puede realizar una asignación de tuplas utilizando dos índices. expresiones:

    if v1, v2 := m1["aaa"], m2["aaa"]; v1 != nil && v2 != nil {
        // ...
    }
  2. Función auxiliar:
    Se puede crear una función auxiliar para realizar la verificación de existencia de claves en ambos mapas y devolver los resultados:

    func idx(m1, m2 map[string]interface{}, k string) (
        v1, v2 interface{}, ok1, ok2 bool) {
    
        v1, ok1 = m1[k]
        v2, ok2 = m2[k]
        return
    }

    Esta función se puede utilizar de la siguiente manera:

    if v1, v2, ok1, ok2 := idx(m1, m2, "aaa"); ok1 && ok2 {
        // ...
    }

Estos enfoques permiten una verificación concisa y eficiente de la existencia de una clave en múltiples mapas dentro de una única declaración condicional.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3