imagen

Goland

Declaraciones

// Constantes con type explicito
const pi float64 = 3.15

// Constantes con type implicito
const pi = 3.1415

// Variable : declaración y asignación implicita
base := 12

// Variable 
var altura int = 14
var area int

Ver todos los types aqui

Zero values

// Creación de variables con valores predefinidos
var a int // 0
var b float // 0
var c string // ''
var d boolean // false

Operadores aritméticos

var sum = 2 + 5
var substraction = 5 - 2
var multiplication = 5 * 2
var division = 10 / 2
var modulus = 10 % 2

var increment  = 0
increment++ // 1

var decrement  = 10
decrement-- // 9

Funciones

// recibe dos enteros y retorna un entero
func add(x int, y int) int {
	return x + y
}

func add(x,y int) int {
	return x + y
}

// Retornar multiples values
func swap(x, y string) (string, string) {
	return y, x
}

func main() {
	a, b := swap("hello", "world")
	fmt.Println(a, b)
  
    // descargar el segundo valor retornado con _
  	a, _ := swap("hello", "world")
}

// Retornar valores nombrados
func split(sum int) (x, y int) {
	x = sum * 4 / 9
	y = sum - x
	return
}

func main() {
	fmt.Println(split(17)) // 7 10
}

Funciones anónimas

func main() {

   // Ejemplo basico de funcion anonima
   var num int = 0

   incrementar := func() int {
      num++
      return num
   }

   fmt.Println("Num: ", num)  // 0
   fmt.Println("Num: ", incrementar())  // 1
   fmt.Println("Num: ", incrementar())  // 2
}