CursosEmpresasBlogLiveConfPrecios

Workshop: Métodos y Structs

Clase 22 de 29 • Curso de Programación en GO - 2015

Clase anteriorSiguiente clase

Contenido del curso

Bienvenido al curso 

  • 1

    ¡Renovaremos este curso pronto!

    00:16 min

Dia 1: Introducción a GO

  • 2

    Instalación

    01:01 min
  • 3
    Workshop: ¿Porqué Go?

    Workshop: ¿Porqué Go?

    58:06 min
  • 4
    ¿Para qué sirve (y no sirve) Go?

    ¿Para qué sirve (y no sirve) Go?

    03:31 min
  • 5
    Tipos de datos básicos

    Tipos de datos básicos

    16:51 min
  • 6
    Aspectos técnicos detrás de Go

    Aspectos técnicos detrás de Go

    09:09 min
  • 7
    La importancia del Standard Library

    La importancia del Standard Library

    05:12 min
  • 8
    Estructura general de un programa de Go

    Estructura general de un programa de Go

    15:40 min
  • 9
    Otros tipos de datos

    Otros tipos de datos

    04:28 min
  • 10
    Recapitulando el ejemplo base de Go

    Recapitulando el ejemplo base de Go

    34:34 min
  • 11
    Preguntas y respuestas

    Preguntas y respuestas

    17:49 min

Dia 2: Tipos de datos compuestos 

  • 12
    Workshop: Web Service simple en Go

    Workshop: Web Service simple en Go

    52:52 min
  • 13
    Servidor Web básico

    Servidor Web básico

    07:34 min
  • 14
    Documentación oficial de GO

    Documentación oficial de GO

    02:11 min
  • 15
    Concurrencia

    Concurrencia

    02:58 min
  • 16
    Tipos compuestos : Arreglos

    Tipos compuestos : Arreglos

    13:51 min
  • 17
    Tipos compuestos : Slices

    Tipos compuestos : Slices

    24:29 min
  • 18
    Tipos compuestos : Mapas

    Tipos compuestos : Mapas

    13:08 min
  • 19
    Recorriendo tipo de datos compuestos con ranges

    Recorriendo tipo de datos compuestos con ranges

    12:56 min
  • 20
    Bases para un chat server

    Bases para un chat server

    03:48 min
  • 21
    Preguntas y respuestas

    Preguntas y respuestas

    20:28 min

Dia 3: Creando un chat server con Go

  • 22
    Workshop: Métodos y Structs

    Workshop: Métodos y Structs

    Viendo ahora
  • 23
    Repaso se los conceptos del workshop

    Repaso se los conceptos del workshop

    05:01 min
  • 24
    Concurrencia y  Goroutines

    Concurrencia y Goroutines

    24:40 min
  • 25
    Channels (Canales)

    Channels (Canales)

    18:48 min
  • 26
    Chat server

    Chat server

    41:40 min
  • 27
    Preguntas y respuestas

    Preguntas y respuestas

    16:38 min

Complementos del curso

  • 28
    Aplicaciones móviles con go

    Aplicaciones móviles con go

    09:19 min
  • 29
    Hugo, el framework para hacer sitios web con Go

    Hugo, el framework para hacer sitios web con Go

    00:00 min
Tomar examen
    Oliver Sandoval

    Oliver Sandoval

    student•
    hace 10 años

    Puedo crear mis propios paquetes verdad? Como podria hacerlo? Cual es la estructura? De antemano muchas gracias c:

      Eliuk Blau

      Eliuk Blau

      student•
      hace 9 años
      • creas un archivo

      • primera línea: package nombre_de_tu_package

      • a partir de la siguiente línea, código Go habitual, declaración de funciones, tipos de datos, etc.

    naifg

    naifg

    student•
    hace 10 años

    Desde el lenguaje GO como puedo escribir al puerto LPT1 directamente, tengo esa necesida para migrar un sistema. Mucha Gracias a todos.

    Ossiel Uriel

    Ossiel Uriel

    student•
    hace 10 años

    alguien me puede explicar que significa el "&" antes de usuario? o para que sirve?

      Eliuk Blau

      Eliuk Blau

      student•
      hace 9 años

      Es el operador de dirección de memoria. Si lo aplicas a una variable, te devuelve un puntero (del tipo de esa variable) a la dirección de memoria donde se encuentra alojada.

    Victor Recio

    Victor Recio

    student•
    hace 10 años
    http.ServeFile(w, r, r.URL.Path[1:]) te ayuda para servir los archivos de una carpeta en barra!
    Victor Recio

    Victor Recio

    student•
    hace 10 años

    En Go todos los errores se toman como un valor!

    Victor Recio

    Victor Recio

    student•
    hace 10 años

    Un struct es un type que contiene nombre de algunos campos. Estos campos son como un grupo de variables que pueden tener su propio type y su nombre.

    Victor Recio

    Victor Recio

    student•
    hace 10 años

    Podriamos decir que (*usuario, error) es el reciver de la funcion?

    Victor Recio

    Victor Recio

    student•
    hace 10 años

    "Queremos imprimir los errores para saber que el programa esta corriendo bien" Podriamos decir que es una forma de Debugging?

    Oliver Sandoval

    Oliver Sandoval

    student•
    hace 10 años

    Se pueden colocar métodos dentro de un Struct? :v

      Douglas Mendez

      Douglas Mendez

      student•
      hace 10 años

      Si se puede, aqui va un ejemplo para que te queda mas claro ! 

      package main

      import (
      "fmt"
      )

      //User struct in golang example
      type User struct {
      firstName string
      lastName  string
      }

      //FullName return user fullname
      func (u *User) FullName() string {
      return u.firstName + " " + u.lastName
      }

      func main() {
      var user = User{firstName: "Douglas", lastName: "Mendez"}
      fmt.Println(user.FullName())
      }

      Eliuk Blau

      Eliuk Blau

      student•
      hace 9 años

      Sí, pero los métodos no están "dentro del struct", son parte de la "interfaz" del struct. Un struct solo contiene tipos de datos, los métodos son funciones asociadas a la instancia de un tipo de datos concreto.

    hector mauricio tequita robayo

    hector mauricio tequita robayo

    student•
    hace 10 años

    package main

    import "fmt"

    //jugador

    type jugador struct {
    nombre string
    goles int
    partidos int
    }

    // promedio de goles
    func (j *jugador) average()float64{
    return float64(j.partidos) / float64(j.goles)
    }

    func main() {
    //crear jugadores
    jugadores := []jugador{
    {"carlos", 20, 50},
    {"juan", 40, 80},
    {"andres", 13, 10},
    }
    //mostrar promedio de goles para cada jugador

      for i, promedio := range jugadores{
    fmt.Scanln(promedio)
    result := jugadores[i].average()
    fmt.Printf("Promedio Para el jugador: %s es: %.1f\n ", jugadores[i].nombre ,result)

      }

     }

      Paulo Tejada

      Paulo Tejada

      student•
      hace 10 años

      for _,jugador:= range jugadores{
      fmt.Printf("El jugador %s Tiene de promedio %f\n",jugador.nombre, jugador.average())
      }
      En dos lineas mejor ;)

    Victor Recio

    Victor Recio

    student•
    hace 10 años

    Creo que el _, (blank identifier) significa que buscamos descartar algo, aun no lo comprendo bien, pero estoy seguro que es para que el programa pueda compilar ignorando alguna funcion sin valor o algo parecido.

      Eliuk Blau

      Eliuk Blau

      student•
      hace 9 años

      Las reglas sintácticas de Go exigen que todas las variables asignadas sea ocupadas explícitamente, o habrá un error en tiempo de compilación. Entonces, cuando una función devuelve más de un valor, el valor que no utilices necesariamente hay que descartarlo ocupando el comodín "_". Este comodín también existe a la hora de hacer un import [se hace el import del package, lo que invocará a su función Init(), si la tuviera, y luego como se descarta su uso con el comodín, no se te exige ocuparlo explicitamente (en algunos casos específicos esto puede ser útil)].

    Iván López Hdez

    Iván López Hdez

    student•
    hace 9 años

    Esta bien que expliqueis las cosas con ejemplos prácticos, pero eso no quita que no expliquéis bien ni conceptos ni para que se hace esto o aquello. Por ejemplo nunca se ha explicado nada sobre punteros y direcciones de memorias, que son, para que se utilizan y como se utilizan. Hemos visto ejemplos con & y con * que gente que ya tiene experiencias en lenguajes con punteros como c++ puede mas o menos interpretar de que se trata y para que se tratan pero en este curso no te enseñan ni lo que es un puntero ni como utilizarlo.
    Sobre las interfaces es exactamente igual, no explican para nada bien que es una interfaz, para que se utilizan, ni lo que significa implementar una interfaz. ¿Porque no hacer un ejemplo claro y conciso que explique que es una interface? A mi por ejemplo no me quedo muy claro para que quiero las interface en golang

      Ricardo Azpeitia P.

      Ricardo Azpeitia P.

      student•
      hace 9 años

      Realmente no hay mucho que ver, en golang un “puntero” es solamente una referencia. No creo que sea necesario explicar las direcciones de memoria porque go no tiene aritmética de punteros.
      Fuente:

      En cuanto a la interfaz, lo puedes ver como un conjunto de funciones que estarán disponibles cuando trabajes con cierto tipo de dato.
      Fuente:

      Iván López Hdez

      Iván López Hdez

      student•
      hace 9 años

      El problema está en que hay gente que ve este tutorial y no sabe que es un puntero o una direccion de memoria, Verónica en ningún momento explica estos conceptos.

    Julian Guarin

    Julian Guarin

    student•
    hace 9 años

    Hola, me gustaría entender con un poco más de profundidad el concepto de paso por valor o referencia de variables. En Go todas las variables on objetos? Qué tanto y cómo ocupan la memoria?

     Gracias :)

      Eliuk Blau

      Eliuk Blau

      student•
      hace 9 años

      Todos los tipos de datos primitivos no son objetos, son valores primitivos. En cambio, cualquier estructura de datos compleja que tenga un método o un atributo, debería considerarse un objeto. A raíz de lo anterior, si un struct de Go tiene métodos, entonces puede considerarse un objeto.

    Franklin Gil

    Franklin Gil

    student•
    hace 9 años

    Por eso no me gusta tunear el sublime, porq cuando le instalas muchas cosas llega un momento que comienza a hacer cosas que no quieres.
    En este caso de Verónica, no puede guardar sin antes terminar el programa

    Franklin Gil

    Franklin Gil

    student•
    hace 9 años

    Perdonenme, pero esto es mas una practica guiada que un curso… No entiendo nada, no explica el por que ni para que de lo q hace.

Escuelas

  • Desarrollo Web
    • Fundamentos del Desarrollo Web Profesional
    • Diseño y Desarrollo Frontend
    • Desarrollo Frontend con JavaScript
    • Desarrollo Frontend con Vue.js
    • Desarrollo Frontend con Angular
    • Desarrollo Frontend con React.js
    • Desarrollo Backend con Node.js
    • Desarrollo Backend con Python
    • Desarrollo Backend con Java
    • Desarrollo Backend con PHP
    • Desarrollo Backend con Ruby
    • Bases de Datos para Web
    • Seguridad Web & API
    • Testing Automatizado y QA para Web
    • Arquitecturas Web Modernas y Escalabilidad
    • DevOps y Cloud para Desarrolladores Web
  • English Academy
    • Inglés Básico A1
    • Inglés Básico A2
    • Inglés Intermedio B1
    • Inglés Intermedio Alto B2
    • Inglés Avanzado C1
    • Inglés para Propósitos Específicos
    • Inglés de Negocios
  • Marketing Digital
    • Fundamentos de Marketing Digital
    • Marketing de Contenidos y Redacción Persuasiva
    • SEO y Posicionamiento Web
    • Social Media Marketing y Community Management
    • Publicidad Digital y Paid Media
    • Analítica Digital y Optimización (CRO)
    • Estrategia de Marketing y Growth
    • Marketing de Marca y Comunicación Estratégica
    • Marketing para E-commerce
    • Marketing B2B
    • Inteligencia Artificial Aplicada al Marketing
    • Automatización del Marketing
    • Marca Personal y Marketing Freelance
    • Ventas y Experiencia del Cliente
    • Creación de Contenido para Redes Sociales
  • Inteligencia Artificial y Data Science
    • Fundamentos de Data Science y AI
    • Análisis y Visualización de Datos
    • Machine Learning y Deep Learning
    • Data Engineer
    • Inteligencia Artificial para la Productividad
    • Desarrollo de Aplicaciones con IA
    • AI Software Engineer
  • Ciberseguridad
    • Fundamentos de Ciberseguridad
    • Hacking Ético y Pentesting (Red Team)
    • Análisis de Malware e Ingeniería Forense
    • Seguridad Defensiva y Cumplimiento (Blue Team)
    • Ciberseguridad Estratégica
  • Liderazgo y Habilidades Blandas
    • Fundamentos de Habilidades Profesionales
    • Liderazgo y Gestión de Equipos
    • Comunicación Avanzada y Oratoria
    • Negociación y Resolución de Conflictos
    • Inteligencia Emocional y Autogestión
    • Productividad y Herramientas Digitales
    • Gestión de Proyectos y Metodologías Ágiles
    • Desarrollo de Carrera y Marca Personal
    • Diversidad, Inclusión y Entorno Laboral Saludable
    • Filosofía y Estrategia para Líderes
  • Diseño de Producto y UX
    • Fundamentos de Diseño UX/UI
    • Investigación de Usuarios (UX Research)
    • Arquitectura de Información y Usabilidad
    • Diseño de Interfaces y Prototipado (UI Design)
    • Sistemas de Diseño y DesignOps
    • Redacción UX (UX Writing)
    • Creatividad e Innovación en Diseño
    • Diseño Accesible e Inclusivo
    • Diseño Asistido por Inteligencia Artificial
    • Gestión de Producto y Liderazgo en Diseño
    • Diseño de Interacciones Emergentes (VUI/VR)
    • Desarrollo Web para Diseñadores
    • Diseño y Prototipado No-Code
  • Contenido Audiovisual
    • Fundamentos de Producción Audiovisual
    • Producción de Video para Plataformas Digitales
    • Producción de Audio y Podcast
    • Fotografía y Diseño Gráfico para Contenido Digital
    • Motion Graphics y Animación
    • Contenido Interactivo y Realidad Aumentada
    • Estrategia, Marketing y Monetización de Contenidos
  • Desarrollo Móvil
    • Fundamentos de Desarrollo Móvil
    • Desarrollo Nativo Android con Kotlin
    • Desarrollo Nativo iOS con Swift
    • Desarrollo Multiplataforma con React Native
    • Desarrollo Multiplataforma con Flutter
    • Arquitectura y Patrones de Diseño Móvil
    • Integración de APIs y Persistencia Móvil
    • Testing y Despliegue en Móvil
    • Diseño UX/UI para Móviles
  • Diseño Gráfico y Arte Digital
    • Fundamentos del Diseño Gráfico y Digital
    • Diseño de Identidad Visual y Branding
    • Ilustración Digital y Arte Conceptual
    • Diseño Editorial y de Empaques
    • Motion Graphics y Animación 3D
    • Diseño Gráfico Asistido por Inteligencia Artificial
    • Creatividad e Innovación en Diseño
  • Programación
    • Fundamentos de Programación e Ingeniería de Software
    • Herramientas de IA para el trabajo
    • Matemáticas para Programación
    • Programación con Python
    • Programación con JavaScript
    • Programación con TypeScript
    • Programación Orientada a Objetos con Java
    • Desarrollo con C# y .NET
    • Programación con PHP
    • Programación con Go y Rust
    • Programación Móvil con Swift y Kotlin
    • Programación con C y C++
    • Administración Básica de Servidores Linux
  • Negocios
    • Fundamentos de Negocios y Emprendimiento
    • Estrategia y Crecimiento Empresarial
    • Finanzas Personales y Corporativas
    • Inversión en Mercados Financieros
    • Ventas, CRM y Experiencia del Cliente
    • Operaciones, Logística y E-commerce
    • Gestión de Proyectos y Metodologías Ágiles
    • Aspectos Legales y Cumplimiento
    • Habilidades Directivas y Crecimiento Profesional
    • Diversidad e Inclusión en el Entorno Laboral
    • Herramientas Digitales y Automatización para Negocios
  • Blockchain y Web3
    • Fundamentos de Blockchain y Web3
    • Desarrollo de Smart Contracts y dApps
    • Finanzas Descentralizadas (DeFi)
    • NFTs y Economía de Creadores
    • Seguridad Blockchain
    • Ecosistemas Blockchain Alternativos (No-EVM)
    • Producto, Marketing y Legal en Web3
  • Recursos Humanos
    • Fundamentos y Cultura Organizacional en RRHH
    • Atracción y Selección de Talento
    • Cultura y Employee Experience
    • Gestión y Desarrollo de Talento
    • Desarrollo y Evaluación de Liderazgo
    • Diversidad, Equidad e Inclusión
    • AI y Automatización en Recursos Humanos
    • Tecnología y Automatización en RRHH
  • Finanzas e Inversiones
    • Fundamentos de Finanzas Personales y Corporativas
    • Análisis y Valoración Financiera
    • Inversión y Mercados de Capitales
    • Finanzas Descentralizadas (DeFi) y Criptoactivos
    • Finanzas y Estrategia para Startups
    • Inteligencia Artificial Aplicada a Finanzas
    • Domina Excel
    • Financial Analyst
    • Conseguir trabajo en Finanzas e Inversiones
  • Startups
    • Fundamentos y Validación de Ideas
    • Estrategia de Negocio y Product-Market Fit
    • Desarrollo de Producto y Operaciones Lean
    • Finanzas, Legal y Fundraising
    • Marketing, Ventas y Growth para Startups
    • Cultura, Talento y Liderazgo
    • Finanzas y Operaciones en Ecommerce
    • Startups Web3 y Blockchain
    • Startups con Impacto Social
    • Expansión y Ecosistema Startup
  • Cloud Computing y DevOps
    • Fundamentos de Cloud y DevOps
    • Administración de Servidores Linux
    • Contenerización y Orquestación
    • Infraestructura como Código (IaC) y CI/CD
    • Amazon Web Services
    • Microsoft Azure
    • Serverless y Observabilidad
    • Certificaciones Cloud (Preparación)
    • Plataforma Cloud GCP

Platzi y comunidad

  • Platzi Business
  • Live Classes
  • Lanzamientos
  • Executive Program
  • Trabaja con nosotros
  • Podcast

Recursos

  • Manual de Marca

Soporte

  • Preguntas Frecuentes
  • Contáctanos

Legal

  • Términos y Condiciones
  • Privacidad
  • Tyc promociones
Reconocimientos
Reconocimientos
Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
Logo reconocimientoPrimera Startup EdTech · 2018
Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
Logo reconocimientoCEO Mejor Emprendedor del año · 2024
De LATAM conpara el mundo
YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads