update help funcion entre dist diferencia comando actualizar syntax go

syntax - help - ubuntu sudo apt-get upgrade



¿Qué es esta cosa "foo.(Bar.Baz)" en el código Go? (2)

Por ejemplo, en esta respuesta:

https://stackoverflow.com/a/10385867/20654

... if exiterr, ok := err.(*exec.ExitError); ok { ...

¿Qué es eso err.(*exec.ExitError) llamado? ¿Como funciona?



Es una afirmación de tipo. Esa declaración if está comprobando si err también es *exec.ExitError . ok vamos a saber si fue o no fue. Finalmente, exiterr está exiterr , pero "convertido" a *exec.ExitError . Esto solo funciona con tipos de interface .

También puede omitir el ok si está 100000 por ciento seguro del tipo subyacente. Pero, si omites lo ok y resulta que te equivocaste, entonces te entrará el panic .

// find out at runtime if this is true by checking second value exitErr, isExitError := err.(*exec.ExitError) // will panic if err is not *exec.ExitError exitErr := err.(*exec.ExitError)

El ok no es parte de la sintaxis, por cierto. Es solo un booleano y puedes ponerle el nombre que quieras.