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.
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