Lenguaje De Programacion Go
Jorge Sebastian Hernández Domínguez
Centro de Investigación y de Estudios Avanzados del I.P.N
9 de Noviembre de 2011
Jorge Sebastian Hernández Domínguez
Lenguaje de Programación: Go
Go
Es un lenguaje de programación de propósito general que es promovido por: Rob Pike, Robert Griesemer, Ken Thompson, Russ Cox, Ian Lance Taylor. Todos ellos de GoogleGo tiene las siguientes características:
Lenguaje compilado Tipado estático Rápido Soporte de concurrencia Open Source
Página web: http://golang.org
Jorge Sebastian Hernández Domínguez
Lenguaje de Programación: Go
Go
Existen dos compiladores para Go:
Gccgo - Basado en GCC Suite 6g, 8g, etc. (Dependiendo de la arquitectura)
Jorge Sebastian Hernández Domínguez
Lenguaje deProgramación: Go
Hello world!
Cada código fuente declara el paquete al que pertenece (main), además de los paquetes a usar (fmt) Funciones se declaran con func Comentarios:
/* comentario multilínea */ // comentario una línea
El punto y coma (;) es opcional p a c k a g e main i m p o r t " fmt " f u n c main ( ) { fmt . P r i n t f ( " H e l l o w o r l d " ) }
Jorge Sebastian HernándezDomínguez
Lenguaje de Programación: Go
Declaraciones
Se utiliza la palabra reservada var El tipo de dato se pone al final var x , y , z i n t
Jorge Sebastian Hernández Domínguez
Lenguaje de Programación: Go
Asignación múltiple
Go permite hacer asignación múltiple Dichas asignaciones se realizan en paralelo i , j = j , i // i n t e r c a m b i a i con j
Jorge SebastianHernández Domínguez
Lenguaje de Programación: Go
Funciones
El tipo se pone después del nombre de la variable Cuando dos o más parámetros son del mismo tipo solo es necesario el tipo en el último parámetro f u n c add ( x i n t , y i n t ) i n t { return x + y } f u n c add ( x , y i n t ) i n t { return x + y }
Jorge Sebastian Hernández Domínguez
Lenguaje de Programación: Go
FuncionesUna función puede regresar cualquier número de resultados f u n c swap ( x , y s t r i n g ) ( s t r i n g , s t r i n g ) { return y , x }
Jorge Sebastian Hernández Domínguez
Lenguaje de Programación: Go
Asignación corta
Dentro de una función, se puede usar := en lugar de var x := 1 y , z := 2 , 3
Jorge Sebastian Hernández Domínguez
Lenguaje de Programación: Go
ConstantesSe utiliza la palabra reservada const. Pueden ser string, booleanos o numéricos. El tipo de la constante puede obtenerse del contexto const Pi f l o a t 6 4 = 3.14 c o n s t c a d e n a = " Hola mundo"
Jorge Sebastian Hernández Domínguez
Lenguaje de Programación: Go
For
Solo existe una estructura para los ciclos en Go (for). No se usan paréntesis y las llaves son obligatorias. f or i := 0 ; i < 1 0 ; i++ { sum += i } f o r sum < 1000 { // w h i l e sum += sum } f o r { // i n f i n i t o }
Jorge Sebastian Hernández Domínguez
Lenguaje de Programación: Go
If
No se usan paréntesis y las llaves son obligatorias. También puede agregarse una sentencia antes de la condición x = −10 if x < 0 { fmt . P r i n t l n ( " x e s menor que 0 " ) } i f v := 5 ; x < v { fmt .P r i n t l n ( " x e s menor que v " ) }
Jorge Sebastian Hernández Domínguez
Lenguaje de Programación: Go
Defer
Defer ejecuta una función cuando la función que la encierra regresa Se utiliza una pila para para resolver el orden de varios defer Útil para cerrar archivos func f () { f o r i := 0 ; i < 5 ; i++ { d e f e r fmt . P r i n t f (" %d " , i ) } }
Jorge Sebastian HernándezDomínguez
Lenguaje de Programación: Go
Ejercicio: Defer
¿Cuál es la salida? f u n c t r a c e ( s s t r i n g ) { fmt . P r i n t l n ( " e n t e r i n g : " , s ) } f u n c u n t r a c e ( s s t r i n g ) { fmt . P r i n t l n ( " l e a v i n g : " , s ) } func a () { t r a c e (" a ") d e f e r u n t r a c e (" a ") fmt . P r i n t l n ( " i n a " ) } func b () { t r a c e (" b ") d...
Regístrate para leer el documento completo.