Introducción a Go
-
Upload
glud-grupo-de-trabajo-academico-gnulinux-universidad-distrital -
Category
Education
-
view
55 -
download
0
Transcript of Introducción a Go
XIII Semana Linux 2016
Introducción a Go
Grupo GNU/Linux Universidad Distrital Francisco José de CaldasSemillero de Investigación en Tecnología Libre
Contexto
Golang: Go (programming language)
Libre y OpenSourcehttps://github.com/golang/
Anunciado en el 2009
Creado por:Robert GriesemerRob PikeKen Thompson
Realizado por: Leidy Marcela Aldana
“Go es un lenguaje de programación de código abierto que hace que sea fácil de construir
software simple, confiable y eficiente.”
I. GOROOT :: puntero a la raíz de la instalación.II. GOPATH, similar al workspace de Java.
Variables de entorno
Compiladolenguaje de alto nivel
que requiere:
Lenguaje de Programación Imperativo y Orientado a objetos
Go: No cuenta con Excepciones ni con una sintaxis
específica para Herencia.
Composición
No Concurrente Concurrente
x=x+1y=x+1
X=1; y=2; z=3
Concurrencia
Concurrente: procesos autónomos que se ejecutan (aparentemente) en paralelo
Variables
Forma explícitavar <NombreVariable> <TipoDeVariable>
Forma implícita <NombreVariable> := “DatoQueSeGuardaEn EspacioTemporal”
<NombrePrimeraVariable>, <NombreSegundaVariable> = “DatoVariableUno” , “DatoVariableDos”
Duck typing
“Cuando veo un pájaro que camina como un pato, nada como un pato, y grazna como un
pato, ese pájaro es un pato.”
http://franverona.com/blog/duck-typing-si-parece-un-pato-es-un-pato/
go build : Compila paquetes y dependencias
go test : Nombre_test.goPruebas unitarias
go run : Compila y corre
Retorno “desnudo”
return (sin parámetros) devuelve el valor de las variables usadas
Retorno de múltiples variables
aplazar la ejecución de un comando
Defer
Arrays
El tipo [n]T es un arreglo de n valores de tipo T
Puede ser unidimensional : Var <NombreArray> [tamaño]TipoO puede ser bidimensional: Var <NombreArray> [filas][columnas]Tipo
Forma alterna de declaración<NombreArray> := [...]Tipo{elemento1, elemento2, …, elemento n}
len(<NombreArreglo>)=tamaño del arregloTamaño fijo
Al igual dos arrays en un condicional, se compara tamaño y contenido
Función make: declara sliceDeclaración:
Var <Nombre_Slice> []TipoNombre_Slice := make([]Tipo, longitud, capacidad)
Funciones,len(<Nombre_Slice>)=Longitud del slice
cap(<NombreSlice>)= Capacidad total
*T apunta a T. &T es la dirección de
memoria de T Mapas Estructuras Servidores web
(paquete http) Manejadores HTTP
Proyectos utilizando Go
Adicionalmente...