复杂类型
标识符命名注意事项
- 1)包名:保持package的名宇和目录保持一致,尽量采取有意义的包名,简短,有意义,不要和标准库不要冲突
- 2)变量名、函数名、常量名:采用驼峰法。
- 3)如果变量名、函数名、常量名 首字母大写,则可以被其他的包访问;如果首字母小写,则只能在本包中使用(注:可以简单的理解成,首字母大写是公有的,首字母小写是私有的)
预定义标识符
- 除了保留关键字外,Go还提供了36个预定的标识符,其包括基础数据类型和系统内嵌函数
- append complex64 float64 int32 nil recover bool complex128
- imag int64 panic string byte uint16 int iota uint64 true
- cap copy int8 len print uint close false int16 make
- println uint8 complex float32 uint32 new real uintprt
point 指针类型
package main
import (
"fmt"
)
//演示golang中指针类型
func main() {
//基本数据类型在内存布局
var i int = 10
// i 的地址是什么,&i
fmt.Println("i的地址=", &i)
//下面的 var ptr *int = &i
//1. ptr 是一个指针变量
//2. ptr 的类型 *int
//3. ptr 本身的值&i
var ptr *int = &i
fmt.Printf("ptr=%v\n", ptr)
fmt.Printf("ptr 的地址=%v", &ptr)
fmt.Printf("ptr 指向的值=%v", *ptr)
// 定义一个 int 变量 num 并打印到终端,并将其地址赋值给指针 ptr ,并通过 ptr 去修改 num 的值
var num int = 9
fmt.Printf("num address=%v\n", &num)
var ptr *int
ptr = &num
*ptr = 10 //这里修改时,会到num的值变化
fmt.Println("num =" , num)
var a_b int = 20
fmt.Println(a_b)
var int int = 30
fmt.Println(int)
}
slice 切片类型
map 哈希表类型(键值对)
interface 接口类型
chan 管道类型