[GoLang避坑实战-19] 搞定基础就想收工?别天真了!揭秘 Go 进阶路上的“九九八十一坑”
大家好,我是极客老墨! 恭喜你,跟着老墨走完了 Go 语言的基础教程。从变量声明到实战开发CLI程序,从简单的 if-else 到初探并发,你已经拿到了进入 Go 世界的入场券。 ...
大家好,我是极客老墨! 恭喜你,跟着老墨走完了 Go 语言的基础教程。从变量声明到实战开发CLI程序,从简单的 if-else 到初探并发,你已经拿到了进入 Go 世界的入场券。 ...
大家好,我是极客老墨。 在互联网行业摸爬滚打十几年,从早期的LAMP时代,到Java的Spring全家桶,再到后来的云原生浪潮,老墨见证了技术的每一次变迁。 ...
大家好,我是极客老墨。 上一篇我们写了个小工具——一个简单的命令行计算器,需要从命令行读参数, 我们直接通过 os.Args 来解析命令行参数,这种方式太底层、太原始了,非常容易出错。 ...
大家好,我是极客老墨。 学了这么多语法,是时候写个完整项目了。光看代码片段,很难理解 Go 项目是怎么组织的。这篇我们从零开始,写一个命令行工具,看看真实项目的结构和开发流程。 ...
大家好,我是极客老墨。 好的项目结构能让代码更易理解、易维护、易扩展。Go 社区有一套被广泛认可的标准布局,这篇就聊聊如何组织 Go 项目,让代码结构清晰合理。 ...
大家好,我是极客老墨。 在很多语言里,文件操作和网络操作是两套完全不同的 API。但在 Go 语言里,无论你是读文件、读网络请求,还是读一段内存字符串,你面对的通常都是同一个东西:io.Reader。 ...
大家好,我是极客老墨。 Go 1.11 之前,依赖管理是个大麻烦。GOPATH 要求所有代码放在固定目录,vendor 目录管理混乱,dep 工具又不够成熟。Go Modules 的出现彻底解决了这些问题,现在已经是官方标准方案。 ...
大家好,我是极客老墨! 刚转 Go 的时候,我还在找"Go 版的 JUnit 在哪"。结果发现,Go 根本不需要第三方测试框架,go test 命令 + testing 包就够了。 ...
大家好,我是极客老墨。 Go 标准库是个宝藏。fmt 格式化输出、strings 字符串处理、time 时间操作、json 序列化、os 文件读写,这些日常开发 80% 的需求都能搞定,不用到处找第三方库。 ...
大家好,我是极客老墨。 传统语言里写并发,要创建线程、加锁、处理竞态条件,一不小心就死锁。Go 的并发模型完全不同:用 Goroutine 代替线程,用 Channel 代替锁。这种 CSP(通信顺序进程)模型,让并发编程变得简单多了。 ...
大家好,我是极客老墨。 写代码时,错误处理往往占了一半的工作量。文件打不开、网络连不上、数据格式不对,这些都是常态。Go 的错误处理很直接:错误就是一个返回值,你必须显式检查它。 ...
大家好,我是极客老墨。 Go 没有类,也没有继承。它用结构体封装数据,用接口定义行为。这种"组合优于继承"的设计,让代码更灵活、更解耦。 ...
大家好,我是极客老墨。 写 Go 之前,我在 Java 里用 ArrayList、HashMap 这些集合类。转到 Go 发现只有数组、切片、map 三种,心想"这够用吗?" ...
大家好,我是极客老墨。 写 Go 之前,我在 Java 里循环都是 for、while、do-while 三件套。转到 Go 发现只有一个 for,心想"这够用吗?" ...
大家好,我是极客老墨。 函数返回多个值?刚接触 Go 时我还不习惯,写惯了 Java 的单返回值。后来发现这设计真香,错误处理直接 result, err := doSomething(),不用再搞什么异常捕获。 ...
大家好,我是极客老墨。 写 Go 之前,我在 Java 里定义枚举都是老老实实写 enum。转到 Go 发现没有 enum 关键字,心想"这不得手写 0、1、2、3?" ...
大家好,我是极客老墨! 从 Java 或 Python 转 Go 的时候,我在变量声明这块卡了好一会儿。 不是说 Go 的变量有多复杂,而是它给了你好几种声明方式。var 和 := 到底啥区别?类型推导怎么玩?指针和 Java 有啥不同?常量还能玩出花来? ...
大家好,我是极客老墨。 Go作为编程语言中的后起之秀,在语言规范上吸收了诸多语言的优点,并形成了自身独特的语言风格。本文探讨一下Go语言的代码风格。 ...
大家好,我是极客老墨。这是本教程的第一篇,我们讲介绍 Go 语言的发展历史,并完成安装、运行 HelloWorld 程序。 Go 语言是最近几年发展最快、最火热的编程语言之一,由 Google 公司出品,其学习成本低、天生支持高并发、语法简洁高效、强大的标准库以及日益丰富的生态特性等使得其非常适合开发后端服务程序,并逐渐挑战着 Java 在服务端编程语言中的领导地位。 ...
大家好,我是极客老墨! 在正式开始这套 Golang 基础教程之前,老墨要先跟你聊聊一个很多人容易忽略的问题:环境配置。 你可能会想:“不就是装个 Go 嘛,有啥好说的?” 但老墨见过太多同学,拿着 Go 1.11 的版本跑 Go 1.18 的泛型代码,然后在群里问:“为什么我的代码报错?” ...