package main import ( "fmt" "strconv" // _ "net" // _ "os" // "time" ) //var now = time.Now() const ( CD_TIME = 1000 MAX_NUM = 20 ) var ( a int = 12 b int = 234 ) func main() { //fmt.Println("main:", int(time.Now().Sub(now).Seconds())) fmt.Println(a) fmt.Println(b) var c int = 123456789 d := string(c) fmt.Println(d) fmt.Println(CD_TIME + MAX_NUM) fmt.Println(MAX_NUM) fmt.Println("====================\n") var i int = 3 for { i++ if i > 10 { break } fmt.Println(i) } /** * switch score 中的变量尅不要,加在后面的 case之后, * 但是如果存在这个变量,case 后面就不可可以在加条件,只能是常量 * switch 不用显示调用break终止,匹配到以后会自动终止掉 * 如果不想匹配到后终止要继续执行需要调用fallthrough * 如果 写成 switch score:=1 这种 score变量只在switch体内有效 */ fmt.Println("=========over===========\n") var score int = 5 switch { case score > 1: fmt.Println("a>1") fallthrough case score > 5: fmt.Println("a>5") fallthrough case score > 8: fmt.Println("a>8") fallthrough default: fmt.Println("无基准条件") } fmt.Println("=======================\n") switch score { case 1: fmt.Println("a>1") case 5: fmt.Println("a>5") case 8: fmt.Println("a>8") default: fmt.Println("无基准条件") } fmt.Println("==========================================\n") /** * continue,break 终端的标签必须在调用的代码之前 * goto 调用的代码必须在调用之后,否则死循环标签和go代码位置那段代码了 * goto 为调整程序执行到指定位置 * @type {[type]} */ BREAK_NOTICE_1: for j := 0; j < 10; j++ { if j > 3 { continue } for m := j; m < 10; m++ { if m > 5 && j > 5 { break BREAK_NOTICE_1 } else { fmt.Println("循环:" + strconv.Itoa(j) + "=" + strconv.Itoa(m)) } } } fmt.Println("结束\n") fmt.Println("==========================================\n") /** *数组 *定义的格式 var <var_name> = [length] <type> <value> * */ var arr = [3]int{0: 12, 1: 13, 2: 15} var arr2 = [...]int{1, 2, 3} fmt.Println(arr) fmt.Println(arr2) //数组指针-和数组的区别是前面有个区地址符号 var arrp *[3]int = &arr fmt.Println(arrp) //指针数组的指针 x1, y1 := 1, 2 var xypoint = [...]*int{&x1, &y1} fmt.Println(xypoint) //用new创建的数组也是返回的指向数组指针 arr3 := new([10]int) //可以通过数组指针或者数组变量加[]键对数组指定坐标赋值 arr3[2] = 1000 fmt.Println(arr3) fmt.Println("==========================================\n") //数组可以用==和!=但是不可以用其它操作符号,并且不同的长度数组是不可以比较的,长度是数组的一个属性(类似类型),所以不可以比较 var xyarr1 = [2]int{1, 2} var xyarr2 = [2]int{1, 1} fmt.Println(xyarr1 == xyarr2) fmt.Println(xyarr1 != xyarr2) //多维数组 arr4 := [2][2]int{{1, 1}, {2, 2}} fmt.Println(arr4) arr4[0][1] = 999 fmt.Println(arr4) } // func init() { // fmt.Println("init:", int(time.Now().Sub(now).Seconds())) // w := make(chan bool) // go func() { // time.Sleep(time.Second * 3) // w <- true // }() // <-w // }