"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 pasar variables de tipo a funciones para afirmaciones de tipo en Go?

¿Cómo pasar variables de tipo a funciones para afirmaciones de tipo en Go?

Publicado el 2024-11-08
Navegar:703

How to Pass Type Variables to Functions for Type Assertions in Go?

Pasar variables de tipo a funciones para aserciones de tipo

Desea realizar aserciones de tipo pasando un tipo a una función. Básicamente, su objetivo es lograr lo siguiente:

// Note that this is pseudocode, because Type isn't valid here
func myfunction(mystring string, mytype Type) {
    ...

    someInterface := translate(mystring)
    object, ok := someInterface.(mytype)

    ...  // Do other stuff
}

func main() {
    // Desired function call
    myfunction("hello world", map[string]string)
}

Para realizar correctamente afirmaciones de tipo en myfunction, utilice la siguiente declaración de función:

package main

import "reflect"

func myfunction(v interface{}, mytype interface{}) bool {
    return reflect.TypeOf(v) == reflect.TypeOf(mytype)
}

func main() {
    assertNoMatch := myfunction("hello world", map[string]string{})
    fmt.Printf("% v\n", assertNoMatch) // false

    assertMatch := myfunction("hello world", "stringSample")
    fmt.Printf("% v\n", assertMatch) // true
}

Este enfoque implica utilizar una muestra del tipo que desea hacer coincidir, asegurando que los tipos sean idénticos para una afirmación de tipo exitosa.

Ú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