package main
import (
"fmt"
"unsafe"
)
var num2 int
var aa = "hello"
var bb string = "helloworld"
var cc bool
var(
a int
b bool
)
var c, d int = 1, 2
var e, f =123, "hhhhhhhhhhhhh"
const CONA int = 100
const CONB = "abc"
const(
unknow = 0
female =1
male = 2
)
func pointerPrac(){
var pa *string
var numa string = "指针类型啊?"
println(numa)
pa = &numa
println(*pa)
}
func ifelifPrac(a int){
if(a <= 10){
println("小于10")
}else if(a > 10 && a <= 20){
println("小于20")
} else{
println("大于20啊")
}
switch a {
case 10: println("10!")
case 20: println("20!")
case 30: println("30!")
case 40: println("40!")
default:
println("others")
}
switch {
case a == 10:
println("差~")
case a == 20, a == 30:
println("中~")
case a == 40:
println("优~")
}
var x interface{}
switch i := x.(type){
case nil:
fmt.Println("x的类型是%T" , i)
case int:
fmt.Println("x的类型是int")
case float64:
fmt.Println("x是float64型")
case func(int) float64:
fmt.Println("x的类型是fun(int)型")
case bool, string:
fmt.Println("x是bool或string型")
default:
fmt.Println("未知型")
}
var c1, c2, c3 chan int
var i1, i2 int
select {
case i1 = <-c1:
fmt.Printf("received ", i1, " from c1\n")
case c2 <- i2:
fmt.Printf("sent ", i2, " to c2\n")
case i3, ok := (<-c3):
if ok {
fmt.Printf("received ", i3, " from c3\n")
} else {
fmt.Printf("c3 is closed\n")
}
default:
fmt.Printf("no communication\n")
}
}
func main() {
var num1 int
num1 = 5
fmt.Println(num1)
num2 = num1
fmt.Println(num2)
fmt.Println(aa, bb, cc)
g, h := 123, "heiha"
println(a, b, c, d, e, f, g, h)
const coa, cob, coc = 1, false, "ccccc"
println(coa, cob, coc)
fmt.Println("面积为:", coa*num1, ",这是面积啊")
println(unknow, male, female)
const (
cosa = "abc"
cosb = len(cosa)
cosc = unsafe.Sizeof(cosa)
)
println(cosa, cosb, cosc)
const (
aaa = iota
bbb
ccc
ddd = "ha"
eee
fff = 100
ggg
hhh = iota
iii
)
println(aaa, bbb, ccc, ddd, eee, fff, ggg, hhh, iii)
const (
i = 1 << iota
j = 3 << iota
k
l
)
println(i, j, k, l)
pointerPrac()
ifelifPrac(100)
}