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
// }