Interface con Type Assertion & Switching

0 0 0
                                        

Las interfaces en Go pueden introducir ambigüedad sobre el tipo subyacente. Una aserción de tipo nos permite extraer el valor concreto subyacente del valor de la interfaz usando esta sintaxis: interfaceVariable.(concreteType).Por ejemplo:

NOTA: esto provocará panic si la variable de interfaz no contiene un valor del tipo concreto

¡Ay! Esta imagen no sigue nuestras pautas de contenido. Para continuar la publicación, intente quitarla o subir otra.

NOTA: esto provocará panic si la variable de interfaz no contiene un valor del tipo concreto.


Podemos probar si un valor de interfaz contiene un tipo concreto específico haciendo uso de ambos valores de retorno de la aserción de tipo: el valor subyacente y un valor booleano que informa si la aserción se realizó correctamente. Por ejemplo:

Si input contiene un string, entonces str será el valor subyacente y ok será verdadero

¡Ay! Esta imagen no sigue nuestras pautas de contenido. Para continuar la publicación, intente quitarla o subir otra.

Si input contiene un string, entonces str será el valor subyacente y ok será verdadero. Si input no contiene un string, entonces str será el valor cero del tipo cadena (es decir, "" - la cadena vacía) y ok será falso. En ningún caso se produce panic.

Un type switch puede realizar varias aserciones de tipo en serie. Tiene la misma sintaxis que una aserción de tipo (interfaceVariable.(concreteType)), pero el tipo concreto se reemplaza con la palabra clave type. Ejemplo:

 Ejemplo:

¡Ay! Esta imagen no sigue nuestras pautas de contenido. Para continuar la publicación, intente quitarla o subir otra.
zero golang notesDonde viven las historias. Descúbrelo ahora