De PHP a Go - Comienzo

De PHP a Go - Comienzo

Últimamente he tenido la oportunidad de trabajar con GO después de resistirme mucho ya que PHP siempre guarda un espacio en mi corazón, sin embargo una parte de mi es partidaria de que cada lenguaje aporta lo suyo.

En este viaje daré mi visión personal de como se ve GO desde las perspectiva de un desarrollador PHP.

Compilado

Si hay algo que disfrutamos en PHP es modificar algo e ir a ver el resultado abusando de la "magia" de ser un lenguaje interpretado, GO es un lenguaje compilado, pero lo creadores en su inmensa sabiduría y teniendo en cuenta lo ansiosos que solemos ser los desarrolladores han creado un compila-y-ejecuta asi podemos dejar la compilación para el final cuando ya estemos seguros de que no haremos cambios.

go run script.go

Declaración de variables

No es un secreto para nadie que a la hora de declarar variables los que trabajamos con PHP somos de lo mas sucio de la industria (no nos molesta), declaramos variables sin pensar en el tipo o definir un valor inicial.

GO es un lenguaje de tipado fuerte lo que nos indica que debemos de declarar el tipo de nuestras variables y su valor inicial, pero tiene truco y esto se agradece mucho cuando vienes de PHP (Que difícil enderezar un árbol).

Para que GO difiera automáticamente el tipo de una variable podemos usar una sintaxis de declaración especial usando := siempre y cuando estén dentro de una función.

 myVariable := 12

Algo a tener muy en cuenta es que las variables de tipo string NO se declaran con comillas simples, ya podes iros preparando para ver como se rompe todo.

Y ni que decir de que el punto y coma ; al final de las sentencias no se usa (Es broma, lo podes usar!!) pero lo mas común es que no se use.

Si están trabajando con tipos de datos que requieren precisión lo mas recomendable es que se tomen la molestia de declararlos!

Paquetes

En PHP estamos muy acostumbrados a que las funciones del lenguaje se encuentren de manera global, no necesitamos incluir un USE para hacer uso de print, rand, time etc, por otro lado en GO debemos importar sus paquetes para hacer uso de ellas.

package main

import (
    "fmt"
    "time"
    "math"
    "encoding/json"
)

Funciones

La parte mas gratificante (en mi experiencia) han sido las funciones de GO, son bastante sencillas de definir pero tienen un par de detalles que se agradece en demasía.

   func myFunc(a int, b int) int {

   }

Lo primero que se debe tener en cuenta es que las variables van antes de los tipos (al principio costara) una vez integrado esto podemos comenzar a ver sus características especiales.

  1. Si todos los parámetros son del mismo tipo basta con solo definir el ultimo func myFunc(a, b int).

  2. Se pueden retornar mas de un parámetro!! Sii (yo casi lloro) return, a, b y en la llamada los recibes en orden resultA, resultB := myFunc(12, 3)

  3. Puedes definir variables de retorno directamente en la definición de la función y estas re retornaran automáticamente. (Esto ya es demasiado).

   func myFunc(a, b int) (c int) {
        c := a + b
       return
   }

Siguente Capitulo: De PHP a GO Capitulo 2 - "Objetos"

Ya sabes que me podes dejar comentarios aquí o escribirme por twitter a @millancore