%v 通用占位符(打印任意类型,默认格式) %+v 打印结构体时,显示字段名 + 值 fmt.Printf("%+v", User{"小明"}) {Name:小明} %#v 打印值的 Go 语法表示(含类型) %T 打印值的类型 fmt.Printf("类型:%T", 3.14) %% 打印百分号本身(转义) %d 十进制整数(int/int64 等) fmt.Printf("数字:%d", 100) 数字:100 %b 二进制整数 fmt.Printf("二进制:%b", 8) 二进制:1000 %o 八进制整数 fmt.Printf("八进制:%o", 8) 八进制:10 %x/%X 十六进制(小写 / 大写) %f 浮点数(默认保留 6 位小数) %.2f 浮点数(指定保留 2 位小数) %e/%E 科学计数法(小写 / 大写) %U Unicode 编码(如字符转编码) %s 字符串(直接打印) %q 字符串带双引号(转义) %c 单个字符(按 Unicode 打印) %p 指针地址(十六进制,带 0x)fmt.Printf("指针:%p", &a) %5d 宽度 5,右对齐(不足补空格) %-5d 宽度 5,左对齐(不足补空格) %05d 宽度 5,不足补 0 fmt.Printf("%05d", 123) %5.2f 总宽度 5,保留 2 位小数(右对齐) GO的字符串是不可变的,go的数据都有一个默认值没有赋值时Go中不同类型的变量之间赋值时需要显示转换,变量本身没有发生变化基本数据类型转换成string GO的指针 核心语法:& 取地址、* 解引用(定义指针 / 访问值); 核心优势:函数传参时修改外部变量、节省内存(大数据传递); Go 特色:无指针算术、自动 GC、结构体指针可直接用.访问字段(语法糖); 避坑点:空指针(nil)解引用会崩溃,需先判空。 1. 值类型 所有基础数据类型 + 结构体 + 数组,都是值类型: 基础类型:int/float/bool/string/byte/rune 复合类型:struct(结构体)、array(数组,如 [5]int) 特殊值类型:int8/int16/uint64 等固定长度数值类型 2. 引用类型 只有 3 类核心引用类型(底层封装了指针,Go 帮你简化了指针操作): slice(切片,如 []int) map(字典) chan(通道) 一、标识符的基础规则(语法层面,必须遵守) 这是 Go 编译器强制要求的,违反会直接报错: 字符组成:只能由 字母(a-z/A-Z)、数字(0-9)、下划线(_) 组成; 开头规则:不能以数字开头(如 1score 错误,score1 正确); 大小写敏感:Score 和 score 是两个完全不同的标识符; 不能用关键字:Go 有 25 个关键字(如 if/else/for/struct/var 等),不能作为标识符; 算术运算符,赋值运算符,比较运算符,逻辑运算符,位运算符