package main
import (
"fmt"
"math"
"runtime"
)
type Vertex struct {
X int
Y int
}
type Modelo struct{
nombre string
numero int
activado bool
}
func clases(){
fmt.Println("Vertex",Vertex{1, 2})
my_modelo := Modelo{ "MX-123", 11, true}
fmt.Println("Modelo",my_modelo)
}
func triple(numero int) int {
return numero*3
}
func resta(x, y int) int {
return x - y
}
func swap (x, y string) (string, string){
return y, x
}
func split(sum int) (x, y int) {
x = sum * 4/9
y = sum - x
return
}
func metodo() {
fmt.Println("***Metodo en Golang***")
var cadena string //""
var x, y, z int //0,0,0
var verdadero, falso bool//false, false
var real float32 //0.0
var naranja string ="Naranja"
cadena = "FERROCARRILERO"
x, y, z = 0, 1 , 2
verdadero, falso = false, true
real = 67.5
fmt.Printf("Cadena: %s\n",cadena)
fmt.Printf("x: %d, y: %d, z:%d \n",x,y,z)
fmt.Printf("verdadero: %t, falso: %t \n",verdadero,falso)
fmt.Printf("Real: %f \n",real)
fmt.Printf("Naranja = %s\n",naranja)
//Declaración multiple
var(
x1, y1 int = 9, 21
c1, c2, c3 string = "A","X","T"
verdaderos bool = true
r1, r2 float64 = 9.777, 12.4300
)
fmt.Println("*** Tipos ***")
fmt.Printf("%d, %d\n",x1,y1)
fmt.Printf("%s, %s, %s\n",c1,c2,c3)
fmt.Printf("%t\n",verdaderos)
fmt.Printf("%f, %f\n",r1,r2)
//Conversiones
var entero int = 45
var flotante float64 = float64(entero)
fmt.Printf("Entero: %d\n",entero)
fmt.Printf("Flotante: %f\n",flotante)
}
func condicional(){
var verdadero bool
var numero int
numero = 33
if(numero >= 33){
verdadero = true
}
if(verdadero){
fmt.Println("Es verdadero!!")
}
//Se usa := para ahorrarse la declaración de tipo
booleano := "true"
if(booleano == "true"){
fmt.Println("Concuerda con la cadena")
}
const PI = 3.1415
if(PI == 3.1415){
fmt.Println("Es el mismo valor!!")
}
switch os := runtime.GOOS; os {
case "darwin":
fmt.Println("OS X.")
case "linux":
fmt.Println("Linux.")
default:
fmt.Printf("Sistema operativo %s.\n", os)
}
os:="windows NT"
if("windows" == os){
fmt.Println("Es el sistema Windows")
}else{
fmt.Println("No es un sistema Windows")
}
}
func arreglo(){
fmt.Println("*** Arreglo ***")
p := []int{2, 3, 5, 7, 11, 13}
fmt.Println("p ==", p)
for i := 0; i < len(p); i++ {
fmt.Printf("p[%d] == %d\n",
i, p[i])
}
}
func ciclos(){
fmt.Println("Ciclos:")
sum := 0
for i := 0; i < 10; i++ {
sum += i
}
fmt.Println(sum)
fmt.Println("**********************")
var cont int
cont = 1
const MAX = 10
for ; cont < MAX ; {
cont += cont
fmt.Println(cont)
}
fmt.Printf("Total: %d\n",cont)
cont = 2
for cont < MAX {
cont += cont
fmt.Printf("Numero: %d\n",cont)
}
fmt.Printf("#Suma total: %d\n",cont)
suma := 1
const TAM = 1000
for suma < TAM {
suma += 20
fmt.Println(suma)
}
fmt.Printf("Total: %d\n",suma)
}
func main() {
metodo()
condicional()
ciclos()
arreglo()
fmt.Printf("Hola, mundo\n")
fmt.Println("Feliz Dia ", math.Pi, "!!")
fmt.Printf("Ahora tu tienes %g problemas.",
math.Nextafter(2, 3))
fmt.Printf("\nTriple de 5 es %d", triple(5))
fmt.Printf("\nResta de 4 y 6 nos da: %d \n",resta(4,6))
m, n := swap("Ciao","Arrivaderci")
fmt.Println(m, n)
fmt.Println(split(17))
clases()
}
Ejemplos usando Go
Be the first to comment
You can use [html][/html], [css][/css], [php][/php] and more to embed the code. Urls are automatically hyperlinked. Line breaks and paragraphs are automatically generated.