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、结构体、面向对象等核心内容后续会持续更新进阶版万字笔记持续复盘迭代。

相关新闻

RAG 的下一形态:检索 + 推理时自我纠错

RAG 的下一形态:检索 + 推理时自我纠错

你的 RAG 系统搭完了:多路召回、Rerank、RAGAS 评估都做了。 还是有 20%-30% 的问题答错。 这不是检索精度的问题——检索是对的,但 LLM 在推理时用错了。 答案生成的那 100 毫秒里,系统对自己的输出没有任何质疑。 2026 年 ACL 最新论文 Cou…

2026/7/24 7:29:46阅读更多 →
跨境电商海外仓费用无国内发票,如何合规入账、税前扣除?

跨境电商海外仓费用无国内发票,如何合规入账、税前扣除?

摘要:本文针对深圳跨境电商卖家普遍面临的海外仓无票费用入账难题,系统解析了2026年新规下的合规解决方案。核心指出境外费用无需国内发票,依据国家税务总局2018年第28号公告,凭境外合规凭证即可入账扣除。文章详细列举了税局认可…

2026/7/24 19:59:23阅读更多 →
2026香港EMBA性价比榜单:创业资源丰富的香港EMBA,民企老板择校避坑测评

2026香港EMBA性价比榜单:创业资源丰富的香港EMBA,民企老板择校避坑测评

【客观测评声明】本文为独立商科教育测评内容,无硬性广告植入,基于2026年各院校公开官方数据,从民企创始人、科创企业高管真实需求出发,客观拆解各香港EMBA项目适配度、性价比及短板,为企业家择校提供真实参考。 不少…

2026/7/24 7:35:48阅读更多 →
终极RTL8852BE Wi-Fi 6驱动安装指南:让Linux无线网速起飞!

终极RTL8852BE Wi-Fi 6驱动安装指南:让Linux无线网速起飞!

终极RTL8852BE Wi-Fi 6驱动安装指南:让Linux无线网速起飞! 【免费下载链接】rtl8852be Realtek Linux WLAN Driver for RTL8852BE 项目地址: https://gitcode.com/gh_mirrors/rt/rtl8852be 想要在Linux系统上体验高速Wi-Fi 6网络吗?RT…

2026/7/25 1:07:25阅读更多 →
从0到1构建AI辅助内容流水线:独立开发者的“一人媒体公司“实战

从0到1构建AI辅助内容流水线:独立开发者的“一人媒体公司“实战

从0到1构建AI辅助内容流水线:独立开发者的"一人媒体公司"实战 为什么独立开发者需要"内容流水线" 独立开发者的核心矛盾:"写代码的时间" vs "推广产品的时间"。你每天只有8小时,要么做产品&#xff…

2026/7/25 1:07:25阅读更多 →
OpenCV C++基于AI模型的场景文本检测(OCR)

OpenCV C++基于AI模型的场景文本检测(OCR)

这个程序使用OpenCV检测场景中的文本。输入图片&#xff1a;程序运行后会用绿色的多边形标注出图片里的两行文本&#xff1a;用到的AI模型是frozen_east_text_detection.pb代码&#xff1a;#include <iostream> #include <fstream>#include <opencv2/imgproc.hp…

2026/7/25 1:07:25阅读更多 →
AMAT 0090-B4583 电源模块

AMAT 0090-B4583 电源模块

AMAT 0090-B4583 电源模块产品特点AMAT 0090-B4583 是应用材料公司为半导体设备设计的专用电源模块&#xff0c;适用于刻蚀、沉积等工艺设备。其主要特点如下&#xff1a;品牌为AMAT&#xff0c;专为半导体制造设备配套设计。采用金属密封外壳&#xff0c;具备防尘防潮能力。内…

2026/7/25 1:07:25阅读更多 →
高速DAC电气特性深度解析:从数据手册到硬件设计实战

高速DAC电气特性深度解析:从数据手册到硬件设计实战

1. 从数据手册到设计实战&#xff1a;深度拆解DAC38RFxx系列高速DAC的电气特性在射频和无线通信系统的设计前线摸爬滚打十几年&#xff0c;我经手过的高速数模转换器&#xff08;DAC&#xff09;不计其数。每次打开一份新的DAC数据手册&#xff0c;尤其是像TI的DAC38RFxx这种旗…

2026/7/25 1:07:25阅读更多 →
Agent 环境感知能力:让智能体知道自己在哪个集群和命名空间

Agent 环境感知能力:让智能体知道自己在哪个集群和命名空间

Agent 环境感知能力&#xff1a;让智能体知道自己在哪个集群和命名空间 一、Agent 把生产环境的日志输出到了开发环境的 Elasticsearch&#xff0c;排查了半天才发现 Agent 环境感知不是"Agent 知道自己叫什么"这么简单&#xff0c;是 Agent 需要理解它运行在什么环境…

2026/7/25 1:05:25阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中&#xff0c;我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源&#xff0c;还是配置文件、证书等&#xff0c;都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下&#xff0c;但这…

2026/7/25 1:01:14阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP&#xff08;轻量级目录访问协议&#xff09;作为企业级身份认证的黄金标准&#xff0c;已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时&#xff0c;发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/25 1:01:14阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”&#xff0c;而是以可解释、可审计、可迭代的方式&#xff0c;赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/25 1:01:14阅读更多 →
突破文档下载限制:kill-doc让你看到的都能保存

突破文档下载限制:kill-doc让你看到的都能保存

突破文档下载限制&#xff1a;kill-doc让你看到的都能保存 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档&#xff0c;但是相关网站浏览体验不好各种广告&#xff0c;各种登录验证&#xff0c;需要很多步骤才能下载文档&#xff0c;该脚本就是为了解决您的…

2026/7/25 0:01:16阅读更多 →
C++ string类模拟实现:从深拷贝到内存管理的完整指南

C++ string类模拟实现:从深拷贝到内存管理的完整指南

1. 项目概述&#xff1a;为什么我们要“手撕”string类&#xff1f;在C的学习道路上&#xff0c;尤其是从C语言过渡到C的“初阶”阶段&#xff0c;string类绝对是一个绕不开的核心。标准库里的std::string用起来太方便了&#xff0c;、find、substr&#xff0c;几个操作符和函数…

2026/7/25 0:01:16阅读更多 →
三角洲寻宝鼠工具:高效文件搜索与资源管理实战指南

三角洲寻宝鼠工具:高效文件搜索与资源管理实战指南

1. 先搞清楚“三角洲寻宝鼠”到底是什么工具从名称来看&#xff0c;“三角洲寻宝鼠”更像是一个资源查找或文件检索类工具&#xff0c;而不是游戏或娱乐软件。这类工具的核心价值在于帮助用户快速定位特定资源&#xff0c;比如文档、图片、压缩包或特定格式的文件。如果你经常需…

2026/7/25 0:01:16阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时&#xff0c;发现推理速度只有可怜的 1-2 FPS&#xff0c;而别人的演示视频却能跑到 30 FPS 以上&#xff0c;那么问题很可能不在模型本身&#xff0c;而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后&#xff0c;会直接使用官方示例…

2026/7/24 23:01:03阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一&#xff1a;为什么你需要了解 Coze 和 Dify&#xff1f;如果你对 AI 应用开发感兴趣&#xff0c;但一看到“大模型”、“智能体”、“工作流”这些词就头疼&#xff0c;觉得门槛太高&#xff0c;那这篇文章就是为你准备的。很多开发者&#xff0c;包括我自己&#…

2026/7/24 19:00:40阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会&#xff1a;配图一直是个让人头疼的问题。2026年&#xff0c;AI生图工具已经非常成熟了&#xff0c;但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1&#xff1a;速度之王2026年6月11日&#xff0c…

2026/7/24 19:00:40阅读更多 →