Go 零基础入门万字笔记整理|语法规范、数据类型、指针、运算符、流程控制、函数全梳理 Go零基础入门万字笔记整理语法规范、数据类型、指针、运算符、流程控制、函数全梳理标签GolangGo语言入门后端开发编程笔记零基础学Go一、前言最近从零系统学习 Go 语言全程手写纸质笔记完整记录了Go语法规范、基础数据类型、指针原理、运算符、分支循环、跳转关键字、函数基础等核心知识点。本文将手写笔记全面电子化梳理新手高频踩坑细节、核心语法规则与易错知识点内容通俗易懂、结构清晰非常适合Go零基础入门同学收藏复习、查漏补缺。二、Go 代码语法规范1、代码编写硬性规则源代码文件后缀必须为 .go程序唯一执行入口是 main() 函数Go 严格区分大小写语句末尾无需手动加分号编译器会自动补全是Go代码简洁性的核心体现编译器逐行解析代码一行仅支持一条语句同行多条语句直接报错定义后未使用的变量、导入后未使用的包编译直接报错强制规范编码大括号必须紧跟代码行末尾禁止单独换行书写。2、注释写法块注释/* 注释内容 */VSCode 快捷键 ShiftAltA不支持嵌套块注释行注释// 注释内容VSCode 快捷键 Ctrl/。3、代码风格标准统一使用 Tab 缩进不使用空格单行代码长度建议不超过 80 字符超长语句手动换行可参考Go官方标准库代码规范编写代码官方文档https://golang.org中文学习文档studygolang.com。4、标识符命名规则命名组成仅支持字母、数字、下划线禁止数字开头统一使用驼峰命名法首字母大写为包外可访问小写仅当前包私有Go内置36个保留关键字禁止用作变量、函数名包名简洁统一与文件夹名称保持一致main 为可执行程序主包不可被其他包导入。三、Go 全部基础数据类型详解1、整型整数类型整型分为有符号整型和无符号整型不同类型占用内存、取值范围差异较大适配不同业务场景类型名占用字节取值范围int8 / uint8(byte)1 字节-2⁷~2⁷-1 / 0~2⁸-1int16 / uint162 字节-2¹⁵~2¹⁵-1 / 0~2¹⁶-1int32 / uint324 字节-2³¹~2³¹-1 / 0~2³²-1int64 / uint648 字节-2⁶³~2⁶³-1 / 0~2⁶⁴-1int / uint系统自适应32位系统4字节64位系统8字节适配对应平台范围编码规范满足业务取值需求的前提下优先选择占用内存更小的类型节省系统资源。2、浮点类型float324 字节精度约小数点后 6~7 位float648 字节精度更高日常开发优先使用浮点数底层存储存在微小精度偏差禁止直接使用 判断相等。3、字符类型byte、runebyte本质是 uint8对应ASCII码字符用于存储英文字符、符号rune对应UTF-8 Unicode字符专门用于存储中文、特殊符号字符使用单引号包裹底层存储为ASCII数值可直接参与数学运算。4、布尔类型 bool仅包含两个值true、false占用1个字节默认零值为 false不支持用数字0、1替代布尔值语法严格区分。5、字符串 string双引号包裹字符串为不可变常量无法直接修改内部字符支持转义字符\n换行、\t制表符、\斜杠、双引号多行字符串使用反引号 包裹原样保留格式不解析转义符。6、所有基础类型默认零值变量声明未手动赋值时Go会自动赋予默认零值无需手动初始化整型、浮点型默认值 0布尔类型默认值 false字符串默认空字符串 “”7、类型转换规则Go 不支持隐式类型转换不同类型之间必须手动强制转换转换格式目标类型(变量值)示例float64(num)大范围类型转小范围类型会出现数值截断、精度丢失、数据溢出问题布尔类型与数字、字符串之间禁止互相转换。8、字符串与基础类型互转strconv标准库1基础类型 转 string通用方式fmt.Sprintf(格式化样式, 变量)支持所有数据类型高性能方式使用 strconv 包 Format系列函数FormatInt、FormatFloat适合高频转换场景。2string 转为数字类型使用 strconv 包 Parse系列函数ParseInt、ParseFloat、ParseBool转换存在失败风险函数会返回error错误信息业务代码必须接收并判断转换结果。四、指针详解新手核心重点1、两个核心符号变量名取变量内存地址获取变量内存唯一编号*指针变量解引用通过内存地址获取对应存储的实际数据。2、指针使用特点可通过指针变量直接修改原始内存地址中存储的数据仅变量可获取地址常量、表达式无法取地址int、float、bool等基础类型为值传递函数内仅修改副本不影响原始变量若需在函数内修改外部原始变量必须传递变量指针地址。3、指针细节限制Go不支持指针偏移运算无法像C语言对指针做加减操作不同类型指针禁止互相赋值*int 和 *float32 属于完全不同类型指针变量本身也拥有独立的内存地址。4、值传递 地址传递Go语言所有参数传递均为值拷贝无引用传递普通变量传参拷贝变量值函数修改仅作用于副本原始数据不变指针变量传参拷贝内存地址通过地址可直接修改原始变量数据。五、运算符大全1、算术运算符±*/%取余、自增、–自减整数相除仅保留整数部分舍弃小数如需小数结果需先强制转为浮点类型自增、自减运算符仅支持后置写法不能参与表达式运算。2、赋值运算符-*/%3、关系运算符!所有关系运算结果均为布尔值true / false。4、逻辑运算符 逻辑与全真才真存在短路判断|| 逻辑或一真即真存在短路判断! 逻辑非取反操作。5、位运算符二进制运算按位与、|按位或、^异或、左移、右移6、特殊运算符取地址、*解引用7、运算符优先级单目运算符 算术运算 位移运算 关系运算 逻辑运算 赋值运算优先级不确定时建议用 () 包裹表达式避免运算逻辑出错。8、控制台用户输入通过 fmt.Scan(变量) 实现终端输入必须传入变量地址才能将输入值存入变量。六、流程控制语句分支 循环1、if 条件分支语法格式if 条件表达式 {}条件无需小括号包裹支持 if / else if / else 多分支嵌套判断可在if表达式内定义临时变量变量作用域仅当前分支有效。2、switch 多分支语句case默认自带break匹配成功后自动终止不会穿透后续case单个case可写入多个匹配值逗号分隔满足其一即匹配成功支持 fallthrough 关键字强制穿透执行下一个casedefault 分支所有case匹配失败时执行位置不受限制。3、for 循环Go唯一循环语句Go无while循环所有循环场景均使用for实现标准循环for 初始化; 条件; 自增 {}无限循环for {}for range 遍历专属遍历字符串、数组、切片、map自动返回下标与对应值。4、四大跳转关键字break终止当前循环跳出循环体可配合标签跳出多层循环continue终止本次循环直接进入下一次循环判断goto无条件跳转至指定标签可读性差禁止业务开发使用return终止当前整个函数直接退出函数执行。七、函数基础知识点1、函数定义格式func 函数名(形参列表) (返回值列表) {// 函数体逻辑return 返回数据}func 为函数定义关键字支持单返回值、多返回值适配复杂业务场景同类型形参可简写func sum(a, b int) int。2、函数调用特点函数调用时实参按顺序完成值拷贝传递函数名首字母大写包外可调用小写仅当前包私有Go不支持函数重载同一个包内禁止定义同名函数函数必须先定义后调用禁止前置调用。3、return 使用细节带返回值的函数必须保证所有代码分支都有return语句避免编译报错支持命名返回值可提前定义返回变量函数内直接赋值最终可省略return参数。八、学习总结与踩坑感悟Go语法规则严谨强制未使用变量、冗余导包直接报错能快速培养规范的编码习惯类型转换、指针传参是新手最大难点仅看理论无法吃透必须手写代码调试、观察内存变化字符串不可修改是Go核心特性新手极易出现修改字符串字符的报错问题Go所有传参均为值拷贝修改外部变量必须熟练运用指针内存原理手写笔记电子化整理的学习方式能深度梳理模糊知识点记忆效果远优于纯刷视频。九、后续学习规划后续将持续深耕Go进阶知识点逐一学习包管理、init函数、匿名函数、闭包、defer延迟函数、错误处理、数组、切片、map、结构体、面向对象等核心内容后续会持续更新进阶版万字笔记持续复盘迭代。