Skip to content

Instantly share code, notes, and snippets.

@juanpablocs
Last active September 1, 2016 19:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save juanpablocs/212b3042024ab118ac594f09387d1b34 to your computer and use it in GitHub Desktop.
Save juanpablocs/212b3042024ab118ac594f09387d1b34 to your computer and use it in GitHub Desktop.
primeros pasos con golang

#Primeros pasos en GO

tipos

// tipo integer
var num int = 1
//tipo string
var str string = "hello"
//aqui no es necesario declarar var
//al colocar : go detecta el tipo a esto se le llama autotipado
arr := []int{1,2,3}

crear array en base a una estructura (forma1)

package main

import "fmt"

type User struct{
  Id int
  Name string
}

func main() {
  i := 0
  users := make([]User, 10)
  for i<10 {
    users[i] = User{i, fmt.Sprintf("Juan %d",i)}
    i++
  }
  fmt.Println(users)
}

crear array en base a una estructura (forma2)

package main

import "fmt"

type User struct{
  Id int
  Name string
}
var users []*User

func main() {
  i := 0
  for i<10 {
    u := new(User)
    u.Id = i
    u.Name =  fmt.Sprintf("Juan %d",i)
    users = append(users, u)
    i++
  }
  fmt.Println(users)
}

crear array literal

package main

import (
  "fmt"
)

var languages = make(map[string]string)

func init() {
  languages["cs"] = "C #"
  languages["js"] = "JavaScript"
  languages["rb"] = "Ruby"
  languages["go"] = "Golang"
}
func Get(key string) string {
  return languages[key]
}
func Add(key, value string) {
  languages[key] = value
}
func GetAll() map[string]string {
  return languages
}

func main() {
  Add("php","PHP")
  fmt.Println(GetAll())
}

crear un servidor e imprimir json

import "net/http"
var items = []int{1,2,3,4}
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request){
  w.Header().Set("Content-Type", "application/json; charset=UTF-8")
  json.NewEncoder(w).Encode(items)
})
http.ListenAndServe(":8001", nil)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment