%s 输出字符串表示、无双引号围绕表示 // output
%q 输出字符串表示、有双引号围绕表示 // "output"
%x 十六进制、小写字母表示、每字节两个字符 // 676f6c616e67
%X 十六进制、大写字母表示、每字节两个字符 // 676F6C616E67
%p 十六进制表示、前缀 0x // 0xc000096070
type byte = uint8 // byte是uint8的别名、用于区分字节值和8位无符号整数值。
type rune = int32 // rune是int32的别名、用于区分字符值和整数值。
int和unit的大小根据CPU变化
CPU 型号: runtime.GOARCH
int 长度: strconv.IntSize
flag - 命令行参数解析
Go中只有三种引用类型:`slice(切片)、map(字典)、chan(管道)```
new 的作用是初始化一个指向类型的指针(*T)
make 的作用是为 slice、map 或 chan 初始化并返回引用(T)
new 是内建函数 new 用来分配内存
func new(Type) *Type
它的第一个参数是一个`类型`,不是一个值,它的返回值是一个指向新分配`类型零值的指针`
make 是内建函数
func make(Type, size IntegerType) Type
make 用来为引用类型(slice/map/chan)分配内存和初始化一个对象
make 的第一个参数也是一个类型而不是一个值,
make 返回类型的引用而不是指针,同时也依赖于具体传入的类型
switch: case 单值、case 多值、case 表达式、
range用于遍历:数组、切片、映射、列表、结构体、通道、
结构体、接口、通道、方法、函数、并发、反射
结构体:值类型 _ 创建 _ 嵌套 _ 匿名嵌套 _ 链式匿名嵌套 _ 匿名多嵌套、
接口:指针类型 _ 创建 _ 实现 _ 判断是否实现 _ 参数传递 _ 返回值类型、
类型指针:允许对这个指针类型的数据进行修改。传递数据使用指针,而无须拷贝数据。类型指针不能进行偏移和运算。
切片:由指向起始元素的原始指针、元素数量和容量组成。切片发生越界时,运行时会报出宕机,并打出堆栈,而原始指针只会崩溃。
"判断类型"
var data interface{} = "hello"
strValue, ok := data.(string)
"判断类型"
func typeof(v interface{}) string {
return fmt.Sprintf("%T", v)
}
"判断类型"
reflect.TypeOf(v).String()