💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
## 2-1 内建变量类型 >bool, string u(int) u(int8) u(int16) u(int32) u(int64) uintptr byte,rune rune是int32位的 float32,float64,complex64(实部和虚部都是32),complex128(实部和虚部都是64位) ## 2-2强制类型转换 >var a,b int=3,4 var c int =math.Sqrt(a*a+b*b) ❌ var c int=int(math.Sqrt(float64(a*a+b*b))) ✔ ## 2-3常量和枚举 ### const 定义常量 常量的数值可以做任何类型 >const a,b=3,4 const( a,b=3,4 ) ### 定义枚举 没有关键字来定义枚举类型 #### 普通枚举类型 >const( CPP=iota _ PHP PYTHON ) #### 自增值的枚举类型 const ( b=1<<(10*iota) kb mb gb tb pb ) ## 2-4 条件语句 >switch 会自动break 如下例子会执行fallthrough下一条语句而不会判断条件: ~~~go const file="f" switch file { case "f": fmt.Println("ff\n") fallthrough case "g": fmt.Println("fffdg\n") default: fmt.Println("default\n") } ~~~ ## 2-5 循环 for 省略初始条件相当于其他语言的while 整数转化为二进制 ~~~go func convertToBin(n int)string { result:="" for ;n>0 ;n/=2 { lsb:=n%2 //fmt.Printf("%v\n",n) result=strconv.Itoa(lsb)+result //fmt.Printf("%v\n",result) } return result } ~~~ ## 2-6 函数定义 func eval(a,b int op string) int{ } func apply(op func(int,int)int,a,b int) int{ fmt.printf("ff",runtime.FuncForPC(reflect.valueof(op).Pointer.Name(),a,b) return op(a,b) } >匿名函数 func main(){ fmt.println(apply(func(a,b int)int{return int(math.Pow(float32(a),float32(b)))},3,4) } 可变参数列表 func sumArgs(values ...int) int{ sum:=0 for i:=range values{ sum+=values[i] } return sum } >函数的语法要点总结 返回值类型可以写在最后面 可返回多个值 函数可以作为参数 没有默认参数,可选参数,只有一个可变参数列表 ## 2-7 指针 指针不能运算 可用于交换两个数值