130 lines
2.8 KiB
Go
130 lines
2.8 KiB
Go
|
// For more tutorials: https://blog.learngoprogramming.com
|
||
|
//
|
||
|
// Copyright © 2018 Inanc Gumus
|
||
|
// Learn Go Programming Course
|
||
|
// License: https://creativecommons.org/licenses/by-nc-sa/4.0/
|
||
|
//
|
||
|
|
||
|
package main
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"strings"
|
||
|
)
|
||
|
|
||
|
func main() {
|
||
|
var (
|
||
|
names [3]string // The names of your best three friends
|
||
|
distances [5]int // The distances to five different locations
|
||
|
data [5]byte // A data buffer with five bytes of capacity
|
||
|
ratios [1]float64 // Currency exchange ratios only for a single currency
|
||
|
alives [4]bool // Up/Down status of four different web servers
|
||
|
zero [0]byte // A byte array that doesn't occupy memory space
|
||
|
)
|
||
|
|
||
|
names[0] = "Einstein"
|
||
|
names[1] = "Tesla"
|
||
|
names[2] = "Shepard"
|
||
|
|
||
|
distances[0] = 50
|
||
|
distances[1] = 40
|
||
|
distances[2] = 75
|
||
|
distances[3] = 30
|
||
|
distances[4] = 125
|
||
|
|
||
|
data[0] = 'H'
|
||
|
data[1] = 'E'
|
||
|
data[2] = 'L'
|
||
|
data[3] = 'L'
|
||
|
data[4] = 'O'
|
||
|
|
||
|
ratios[0] = 3.14145
|
||
|
|
||
|
alives[0] = true
|
||
|
alives[1] = false
|
||
|
alives[2] = true
|
||
|
alives[3] = false
|
||
|
|
||
|
// zero[0] = "BOMB!"
|
||
|
_ = zero
|
||
|
|
||
|
// =========================================================================
|
||
|
|
||
|
separator := "\n" + strings.Repeat("=", 20) + "\n"
|
||
|
|
||
|
fmt.Print("names", separator)
|
||
|
for i := 0; i < len(names); i++ {
|
||
|
fmt.Printf("names[%d]: %q\n", i, names[i])
|
||
|
}
|
||
|
|
||
|
fmt.Print("\ndistances", separator)
|
||
|
for i := 0; i < len(distances); i++ {
|
||
|
fmt.Printf("distances[%d]: %d\n", i, distances[i])
|
||
|
}
|
||
|
|
||
|
fmt.Print("\ndata", separator)
|
||
|
for i := 0; i < len(data); i++ {
|
||
|
// try the %c verb
|
||
|
fmt.Printf("data[%d]: %d\n", i, data[i])
|
||
|
}
|
||
|
|
||
|
fmt.Print("\nratios", separator)
|
||
|
for i := 0; i < len(ratios); i++ {
|
||
|
fmt.Printf("ratios[%d]: %.2f\n", i, ratios[i])
|
||
|
}
|
||
|
|
||
|
fmt.Print("\nalives", separator)
|
||
|
for i := 0; i < len(alives); i++ {
|
||
|
fmt.Printf("alives[%d]: %t\n", i, alives[i])
|
||
|
}
|
||
|
|
||
|
// no loop for zero elements
|
||
|
fmt.Print("\nzero", separator)
|
||
|
for i := 0; i < len(zero); i++ {
|
||
|
fmt.Printf("zero[%d]: %d\n", i, zero[i])
|
||
|
}
|
||
|
|
||
|
// =========================================================================
|
||
|
|
||
|
// you know how this works :) don't be freaked out!
|
||
|
fmt.Printf(`
|
||
|
|
||
|
%s
|
||
|
FOR RANGES
|
||
|
%[1]s
|
||
|
|
||
|
`, strings.Repeat("~", 30))
|
||
|
|
||
|
fmt.Print("names", separator)
|
||
|
for i, v := range names {
|
||
|
fmt.Printf("names[%d]: %q\n", i, v)
|
||
|
}
|
||
|
|
||
|
fmt.Print("\ndistances", separator)
|
||
|
for i, v := range distances {
|
||
|
fmt.Printf("distances[%d]: %d\n", i, v)
|
||
|
}
|
||
|
|
||
|
fmt.Print("\ndata", separator)
|
||
|
for i, v := range data {
|
||
|
// try the %c verb
|
||
|
fmt.Printf("data[%d]: %d\n", i, v)
|
||
|
}
|
||
|
|
||
|
fmt.Print("\nratios", separator)
|
||
|
for i, v := range ratios {
|
||
|
fmt.Printf("ratios[%d]: %.2f\n", i, v)
|
||
|
}
|
||
|
|
||
|
fmt.Print("\nalives", separator)
|
||
|
for i, v := range alives {
|
||
|
fmt.Printf("alives[%d]: %t\n", i, v)
|
||
|
}
|
||
|
|
||
|
// no loop for zero elements
|
||
|
fmt.Print("\nzero", separator)
|
||
|
for i, v := range zero {
|
||
|
fmt.Printf("zero[%d]: %d\n", i, v)
|
||
|
}
|
||
|
}
|