
程序基础结构1.1 标准可执行程序模板所有 Go 可执行文件固定格式package main import fmt func main() { // 业务代码写在这里 }package main声明为主包代表当前文件是可执行程序而非库文件import fmt导入标准输入输出包用于打印、读取控制台内容func main()程序入口函数程序运行时自动执行无参数、无返回值2. 输入与输出2.1 三类标准打印函数fmt 包函数是否自动换行参数间自动加空格支持格式化占位符适用场景fmt.Print()否否否连续拼接简单内容fmt.Println()是是否日常常规打印使用最多fmt.Printf()否否是格式化输出、变量拼接常用格式化占位符%d十进制整数%s字符串%f浮点数%.2f表示保留 2 位小数%v通用占位符可打印任意数据类型示例代码package main import fmt func main() { name : 张三 age : 20 fmt.Printf(姓名%s年龄%d\n, name, age) }2.2 内置原生打印函数print()/println()无需导入 fmt 包Go 语言内置功能简单仅用于临时调试正式项目、生产环境禁止使用println(临时调试信息)2.3 控制台输入 fmt.Scan作用接收用户在控制台输入的数据。基础语法var 变量名 数据类型 fmt.Scan(变量名)核心规则必须添加取地址符否则编译报错支持一次性读取多个值输入时用空格 / 回车分隔示例package main import fmt func main() { var num int fmt.Print(请输入一个数字) fmt.Scan(num) fmt.Println(你输入的数字, num) // 一次性读取多个值 var a, b int fmt.Scan(a, b) fmt.Println(a, b) }3. 变量基础3.1 变量定义与初始化完整写法var 变量名 数据类型 var name string var num int定义并赋值var age int 18类型推导简写推荐无需手动声明类型编译器自动推断。sex : 男3.2 变量使用规则定义后的变量必须使用否则编译报错变量名区分大小写同一代码块内变量名不能重复定义4. 条件判断4.1 if / else 分支判断基础单分支if 条件表达式 { // 条件成立执行代码 }双分支 if-elseif 条件表达式 { // 条件成立 } else { // 条件不成立 }多分支 else ifif score 90 { fmt.Println(优秀) } else if score 60 { fmt.Println(及格) } else { fmt.Println(不及格) }实战示例判断奇偶数package main import fmt func main() { var num int fmt.Scan(num) if num%2 0 { fmt.Println(偶数) } else { fmt.Println(奇数) } }4.2 switch 分支语句Go 语言 switch 默认自带 break匹配成功后自动终止无需手动添加。写法 1带表达式等值匹配switch 变量/表达式 { case 值1: 逻辑代码 case 值2: 逻辑代码 default: // 所有case都不匹配时执行 }示例简易菜单选择package main import fmt func main() { var op int fmt.Println(1.加法 2.减法) fmt.Scan(op) switch op { case 1: fmt.Println(执行加法运算) case 2: fmt.Println(执行减法运算) default: fmt.Println(输入选项错误) } }写法 2无表达式替代多 if 判断score : 85 switch { case score 90: fmt.Println(优秀) case score 60: fmt.Println(及格) default: fmt.Println(不及格) }补充规则一个 case 可匹配多个值case 1,2,3:default 可选建议写在所有 case 最后5. 循环结构Go 仅支持 forGo 语言没有 while、do-while所有循环统一使用 for 实现。5.1 四种常用 for 写法写法 1标准三段式计数循环最常用for 初始化语句; 循环条件; 后置语句 { 循环体 }示例打印 1 ~ 10for i : 1; i 10; i { fmt.Println(i) }写法 2仅保留条件等效 while 循环i : 1 for i 10 { fmt.Println(i) i }写法 3死循环for { // 无限循环必须配合 break 退出 }写法 4for range 遍历数组 / 切片 / Map 专用for 索引, 值 : range 容器 { }5.2 匿名变量_遍历场景中不需要使用索引时用_占位避免「定义变量未使用」编译报错。nums : []int{1, 2, 3, 4} for _, v : range nums { fmt.Println(v) }5.3 循环控制关键字break跳出当前所在循环直接终止循环执行。for i : 1; i 10; i { if i 5 { break } fmt.Println(i) }continue跳过本次循环剩余代码直接进入下一次循环。for i : 1; i 10; i { if i 5 { continue } fmt.Println(i) }5.4 双层嵌套循环外层循环控制行数内层循环控制每行内容示例 1打印直角三角形for i : 1; i 5; i {