
¿Cuántos lenguajes de programación trabaja regularmente? Pero probablemente tengas tus favoritos. Yo mismo construí mi carrera en PHP y JavaScript. Siempre busco aprender algo nuevo y descubro que la mejor manera de aprender una nueva habilidad es obligarme a usarlo, ya que sería una herramienta familiar. ¡Así que eso es lo que me propuse hacer con Go! En los últimos meses, decidí inclinarme y aprender ir correctamente y ver de qué se trataba. En serie, repasaré algunas de las cosas que aprendí (y continuaría aprendiendo) sobre la perspectiva de un fondo de programación PHP o JavaScript más tradicional.
Go es un gran tema para cubrir, ¡así que vamos a hacerlo! ¿Qué es y por qué es genial? Si no está familiarizado con GO (también llamado Golang), es un lenguaje de programación creado por algunas personas de Google en 2009. Muchas compañías grandes y conocidas cambian partes de su software. Shopify tiene una herramienta de migración de base de datos que construyeron usando GO, Basecamp ha pasado gradualmente a Ruby para ir e incluso Twitter subió al tren GO en 2015 con su plataforma de análisis de “respuestas”. Hay posibilidades de que si mira en estos días bajo el capó de las compañías más grandes, encontrará Go.
Go está escrito estático, compilado y honestamente, bastante simple de aprender. No es tan verbos como PHP en algunas áreas, pero no es tan mínimo como Ruby o Python. En el ejemplo a continuación, verá que GO usa paquetes, importaciones y tiene una función principal () que se ejecuta: paquete principal importar “fmt” function () {fmt.println (“hey y’all”)} El código Go comienza desde el El paquete principal y, como C, comienza en la función Main (). Los paquetes que no son principales se llaman bibliotecas compartidas y se pueden importar una vez construidos e instalados. Lo que hace que Go Cool es que incluye un servidor web y un enrutador incorporado, hace una implementación súper simple, porque se compila en un solo ejecutable e incluye simultáneamente. Danny Van Kooten escribe en su blog un gran artículo sobre el pasaje de Laravel en Go, que resalta la eficiencia de Go. Además, siempre es bueno aprender cosas diferentes para mejorar nuestras habilidades como programadores. Así que veamos cómo _go_ing con Go …
Nociones básicas antes de hacer algo, necesitamos tiempo de ejecución y todas las golosinas incluidas. Puede leer sobre cómo hacer esto en la página “nociones introductorias” en la documentación GO. Después de que haya terminado, ejecute la versión GO Go o Go Ayuda en la terminal elegida. Si funciona, el Binar GO se agregó a $ Path y fuiste a carreras.

$ Gopath Una cosa que no hice correctamente cuando comencé a trabajar con GO es la configuración correcta de mi espacio de trabajo GO. Deberá asegurarse de que el entorno $ Gopath esté configurado correctamente, ya que este es el espacio de trabajo básico para trabajar con archivos GO. Agregar algo de la siguiente manera a su archivo $ home/.profile funciona para *sistemas nix: exportar gopath = $ {home}/go entonces, querrá asegurarse de tener carpetas plegadas SRC, PKG y bin. Se puede encontrar más información sobre cómo y por qué deberían existir estas carpetas aquí. Por lo general, creará nuevos paquetes (aplicaciones autónomas) en $ GOPATH/SRC/GITHUB.COM/USER/PAGACE_NAME. La documentación oficial es un poco difícil de seguir y realmente no explica los aspectos clave de la programación efectiva en GO. Hemos encontrado otros recursos para explicar mejor cómo escribiría realmente el código.
El libro Little Go
Crear aplicación web con Golang
Wiki ir a github
Sección de programación del servidor de Wiki
Ir con el ejemplo
Además, Google tendrá casi cualquier respuesta que esté buscando, ya sabes, porque Skynet Google ha creado GO. Al menos le recomendaría que eche un vistazo rápido a un recorrido por Go, solo para ver lo que obtiene.
Incluye Go Playground, que es una forma de editar y ejecutar código interactivo. ¡Es útil probar cosas como rodajas y punteros, de los que hablaremos pronto! Debido a que GO es un tema tan grande, mantendremos esta publicación enfocada en aprender algunas de las diferencias clave con respecto a PHP y/o JavaScript, con futuras publicaciones que cubren profundizan. En esta publicación pasaremos: Variables y sistema de tipo GO
Matriz
rodajas
papel
chinos
Funciones
estructura
IDE o editor que escribe el código GO se puede hacer en casi cualquier editor de texto. VS Code es bastante decente (escribí una guía sobre el código de Visual Studio y la configuración de Xdebug como editor final para el desarrollo de WordPress). De hecho, descubrí que el uso de Goland de JetBrains es realmente maravilloso, ya que resaltará automáticamente los errores de sintaxis y le permitirá “hacer clic” en las funciones básicas. Además, Goland importará automáticamente paquetes si utiliza una función que aún no se importa.
Variables que vienen directamente de PHP o JavaScript para ir, una de las grandes cosas que verá es el sistema de tipo GO.GO está escrito estático, de modo que las variables deben asignarse a un tipo cuando se declaran.Esto también significa que, en comparación con PHP, no puede volver a establecer un valor ingresado incorrectamente en las variables.Por ejemplo, este es un código PHP perfectamente válido: // php $ old = true;$ edad = nulo;if ($ old) {$ age = 36;// el elenco nulo como un int} en Go, no tanto: // go: = verdadera vara edad si {age = 36} // Error del compilador: No se puede usar 36 (tipo int) como tipo bool en el sistema de asignación de tipo GO es mucho más estricto que PHP y no puede convertir un BOOL en un INT, incluso con las funciones de conversión incorporadas.Realmente te obliga a pensar en tus declaraciones variables y en lo que estás tratando de hacer con tu código.
Si desea probar la muestra GO anterior, puede copiar el código anterior en un archivo .Go y ejecutar GO ejecutar myFile.Go o inserte en un nuevo patio de recreo y presione “Ejecutar”. ¿Notaste: =? Esto es lo que se llama operador de “tarea corta”. Dentro de una función, estos son equivalentes: lima antigua bool antiguo = true // o .. lima antiguo = true // hello type // o … antiguo: = true Go compilador es lo suficientemente inteligente como para darle a su tipo de qué tipo ¡Debería ser variable! GO acepta todos los tipos habituales, como int, string, flotas (float32, float64), etc., pero también acepta tipos compuestos como matriz, corte, mapa y canal. El sistema de tipo GO es extremadamente complejo y similar a C ++ incluye punteros, estructuras (que actúa como base para el modelo de objetos GO y también ofrece a los desarrolladores para crear sus propios tipos), así como interfaces. Como yo, puede olvidar que las variables realmente usan la memoria de la computadora para almacenar sus valores y simplemente ir a su negocio creando variables al ver. Bueno, ir está aquí para estallar al frente. Verá, en Go debe ser consciente de cómo se usa la memoria. Esto se vuelve obvio cuando comienzas a trabajar con Matrix en GO. Por ejemplo, en PHP, si tuviera una lista de perros, probablemente crearía una matriz de la siguiente manera:
$ mah_dogs = [‘Snoopy’, ‘Skinny’, ‘Scooby’, ‘Santos L. Halper’]; Genial, así que haremos lo mismo en Go, ¿verdad?

mah_dogs: = [4] cadena {“snoopy”, “flaco”, “scooby”, “Santos L. Halper”,} se ve bastante similar, pero ¿qué es esa [4] cadena? Este, amigo, es el tamaño fijo de la matriz. En Go, como C, las matrices tienen una dimensión fija. ¿Le gustaría agregar otro elemento a la matriz? ¡Mejor copiarlo y crear una nueva matriz, que es un poco más grande! 😬 Puede leer más sobre por qué y cómo funciona en el blog GO, pero prácticamente las matrices usan piezas de memoria secuenciales, para que se pueda acceder a través del índice. Esto hace que las matrices sean muy rápidas, pero se actualicen lentamente. El tipo de datos más utilizados en GO es Slice, que es una forma como una matriz PHP dinámica. Rebanadas basadas en nuestro ejemplo anterior, para hacer una porción en lugar de una matriz: mah_dogs: = [] string {“snoopy”, “flaco”, “scooby”, “santos l. halper”,} ¿Notas la diferencia? Es esencialmente idéntico, pero no hay un número fijo entre los soportes correctos. ¿Eh? La porción en GO es una capa sobre las matrices, tienen una referencia a una matriz subyacente, pero no contienen datos. Simplemente se refieren a los datos de la matriz básica. Las rodajas tienen una longitud (cuántos artículos contienen) y una capacidad (cuántos artículos pueden contener). Además, las rebanadas se redicionalizan automáticamente si agrega más elementos. Puede acceder a elementos en una porción por índice, como en las matrices PHP: fmt.println (mah_dogs [0]) // snopy mah_dogs [0] = “frank”
fmt.println (mah_dogs [0]) // Frank al igual que Array_Slice () con Php Matrix, ¡puede romper las rebanadas para crear una nueva porción! Las rebanadas usan la sintaxis de las rebanadas [Alto: Low] para obtener un subconjunto de elementos. New_dogs: = mah_dogs [2:] fmt.println (new_dogs) // Scooby, Santos L. Halper Puede excluir el límite superior o inferior si desea que todos los artículos lleguen al final de la sección, por ejemplo. New_dogs: = mah_dogs [2:] // es lo mismo que new_dogs: = mah_dogs [2: 4] Finalmente, no puede agregar elementos a una porción como pueda en Php. En PHP, usaría sintaxis [] para agregar otro elemento a una matriz. En Go, debe usar la función append (). // php $ mah_dogs [] = ‘Dewey’; $ mah_dogs [] = ‘steve’; // go mah_dogs = append (mah_dogs, “Dewey”, “Steve”) Associatives Arrays = maps ok, por lo que las cortes son excelentes y todo, pero es posible que haya notado que las claves (índice) son solo números enteros. ¿Puede usar una cadena como clave, como con las matrices asociativas de PHP? No, no, no puedes. GO usa una estructura llamada mapa. Son más bien matriz asociativa, pero con el aroma Go. // Php $ Groceries = [‘Bread’ => 1.99, ‘Milk’ => 2.99, ‘Eggs’ => 4.99,]; // Go Compories: = map [string] float32 {“pan”: 1.99, “leche”: 2.99, “huevos”: 4.99,} sintaxis para crear un tipo literal de mapa. Acceder a los elementos del mapa es como era de esperar, PriceOfbread: = Comestibles [“Pan”], al igual que la implementación de PHP. Al igual que las matrices asociativas de PHP y, a diferencia de las rodajas, los mapas solo se pueden unir agregando un nuevo valor clave: comestibles [“fruta”
] = 5.99 Bucles Hemos visto algunos de los tipos de colección, pero ¿cómo repite estas estructuras? ¿Usamos el antiguo estándar PHP y JavaScript, el bucle foreach? No realmente. Go tiene solo un tipo de bucle, el bucle para. Afortunadamente, es muy flexible y se puede usar como un foreach o mientras bucle. El bucle básico se ve casi idéntico a la versión php: suma: = 0 para i: = 0; I <10; i ++ {sum += i} un bucle while: para suma <1000 {sum += sum} para el bucle para actuar más como un bucle foreach, solo tiene que incluir la cláusula de rango. Por ejemplo, basado en nuestro mapa anterior con alimentos: para clave, valor: = Pities rande {fmt.printf ("%s cuesta $%. 2F

“, Clave, valor)} // El pan de salida cuesta $ 1.99 cuesta $ 2.99 huevos cuesta $ 4.99 Observe la conversión de flotación con %.2f. Esto le dice a Go que solo queremos 2 precisión, porque no necesitamos más niveles de precisión. Las funciones y más valores devueltos, las funciones en GO son similares a las de PHP, con algunos nabos. Lo único que me sorprendió cuando comencé a leer sobre GO es que puede devolver más valores de una función. No se desarrolle más ¡Una matriz cuando desea devolver más valores! // php function getdogs () {$ perros = [‘count’ => 5, ‘perros’ => [‘snopy’, ‘flaco’, ‘scooby’, ‘Santos l . Halper ‘]; return $ perros;} extracto (getdogs ()); // go función getdogs () (count dogs [] string) {count = 5 perros = [] string {“snoopy”, “flaco”, “,” Scooby “,” Santos L. Halper ”
,} Return} count, dogs = getdogs () Notarás que después de la lista de argumentos puede definir los tipos de retorno. Es algo similar a los tipos de retorno de PHP 7, pero GO ha llamado retorno además de varios valores. Los resultados llamados significan que no debe devolver manualmente ambos valores. En el ejemplo anterior, GO usa los nombres llamados (conteo, perros [] cadena) cuando alcanza la instrucción de retorno. Un pequeño cambio sintáctico, pero me parece más legible. Go también incluye el identificador vacío (_), que le permite renunciar a los valores devueltos si no los necesita. En el ejemplo de nuestros perros, si no nos importa contar, lo usamos para renunciar al valor: _, Dogs = GetDogs () Estructuras Lo último que cubriremos muy breve son las estructuras. Las estructuras son de tipo complejo y forman la base de la forma en que GO trata objetos y composición. Los trataremos más en profundidad la próxima vez, pero por ahora es útil saber cuáles son. En PHP tenemos clases y un modelo OOP tradicional: creamos clases que contienen muchos métodos y propiedades. Un tipo de estructura similar en GO es estructura. Las estructuras son prácticamente solo grupos de otros tipos. Paquete principal import (“fmt” “”) Tipo de estructura de perro {name String Age int int “}} fmt.printf (” Esto es %s. Es la edad es %d y sus favoritas las cosas tienen %s “, Goodboy.name , Goodboy.age, String.Join (Goodboy.likes, “,”)} / / Output: Esto es flaco. Su edad es 4 y ‘
Introducir a los desarrolladores de PHP
Tags Introducir a los desarrolladores de PHP
homefinance blog