package main
import (
"fmt"
"os"
"strconv"
)
type point struct {
x, y int
}
var logf = fmt.Printf
var log = fmt.Println
func main() {
p := point{1, 2}
logf("struct1 %v\n", p)
logf("struct2 %+v\n", p)
logf("struct3 %#v\n", p)
logf("type %T\n", p)
logf("bool %t\n", true)
logf("bin %d\n", 123)
logf("char %c\n", 33)
logf("hex %x\n", 456)
logf("float1 %f\n", 78.9)
logf("float2 %e\n", 123400000.0)
logf("float3 %E\n", 123400000.0)
logf("str1 %s\n", "\"string\"")
logf("str2 %q\n", "\"string\"")
logf("str3 %x\n", "\"string\" hex this")
logf("pointer %p\n", &p)
logf("width1: |%6d|%6d|\n", 12, 456)
logf("width2: |%6.2f|%6.2f|\n", 1.2, 4.52226)
logf("width3: |%-6.2f|%-6.2f|\n", 1.2, 4.56)
logf("width4: |%6s|%6s|\n", "foo", "b")
logf("width5: |%-6s|%-6s|\n", "foo", "b")
s := fmt.Sprintf("Sprintf: a %s", "string")
fmt.Println(s)
fmt.Fprintf(os.Stderr, "io: an %s\n", "error")
f, _ := strconv.ParseFloat("1.234", 64)
i, _ := strconv.ParseInt("1234", 0, 64)
d, _ := strconv.ParseInt("0x1c8", 0, 64)
u, _ := strconv.ParseUint("-789", 0, 64)
u2, _ := strconv.ParseUint("789", 0, 64)
k, _ := strconv.Atoi("135")
k2, _ := strconv.Atoi("135")
_, e := strconv.Atoi("wat")
log(f)
log(i)
log(d)
log(u)
log(u2)
log(k)
log(k2)
log(e)
}