golang-examples

golang-examples

全面的Go语言学习示例库

golang-examples是一个综合性Go语言学习资源库,包含从基础到高级的代码示例。涵盖语法、数据结构、算法和网络编程等多个领域,并提供在线编辑器供实践。项目还包括性能基准测试和实用工具库,适合各阶段的Go开发者学习和提升技能。

GoGolang编程示例开源GitHubGithub开源项目

Go 示例

DOI
Go 报告卡
许可证: MIT

新功能:现在有一个支持 Golang 的在线实时编辑器。直接在浏览器中尝试和编辑示例: SimonWaldherr/golang-benchmarks 在线编辑器

如果你喜欢这个项目,你可能也会喜欢
我的 golang-benchmarks 仓库:
SimonWaldherr/golang-benchmarks - GitHub
我的 gotools 仓库:
SimonWaldherr/gotools - GitHub
我的 sql-examples 仓库:
SimonWaldherr/sql-examples - GitHub
我的 rp2040-examples 仓库:
SimonWaldherr/rp2040-examples - GitHub
或我的 rpi-examples 仓库:
SimonWaldherr/rpi-examples - GitHub

关于

这些示例解释了 Golang 的基础知识。随着时间的推移会有更多示例。

如果你愿意,随时添加更多 Golang 示例。非常感谢所有贡献者

安装 go(lang)

使用 homebrew:

sudo brew install go

使用 apt-get:

sudo apt-get install golang

手动安装 Golang自行编译

示例

这些示例分为三个难度级别。初学者部分包含非常简单的示例,从 Hello World 开始,但也包含一些简单的算法。进阶部分使用 Golang 更复杂的功能。最后,专家部分包含像 telnet 客户端或 http 服务器(甚至带有 SSL)这样的应用程序。 如果你想要更多 Golang 示例,可以查看我在 GitHub 上的其他 go 仓库:

它们都作为免费和开源软件发布。

如果这些对你来说还不够,你可以看看以下网站:

初学者

要执行 Golang 程序,在命令行输入 go run 后跟文件名。
你也可以通过 go build 命令将文件转换为二进制可执行程序。
如果你知道 #!,也称为 Shebang,go 也有等效的: //usr/bin/env go run $0 $@ ; exit

打印 Hello World 并附带注释 (Golang Playground)

go run HelloWorld.go

打印 Hello World 并附带注释(shebang 版本)

./HelloWorldShebang.go

声明变量并打印 (Golang Playground)

go run var.go

打印变量的各种方式(和风格) (Golang Playground)

go run printf.go

Golang 中的 if 语句 (Golang Playground)

go run if.go Hello

声明数组并打印其项目 (Golang Playground)

go run array.go

声明自己的函数 (Golang Playground)

go run function.go

多次执行某事 (Golang Playground)

go run for.go

读取通过命令行提供的输入数据 (Golang Playground)

go run args.go string string2

读取通过命令行提供的输入数据 (Golang Playground)

go run input.go

或扫描它 (Golang Playground)

go run scan.go

读取命名参数输入数据 (Golang Playground)

go run flag.go

返回工作目录 (Golang Playground)

go run dir.go

以各种格式返回当前时间/日期 (Golang Playground)

go run time.go

返回伪随机整数值 (Golang Playground)

go run random.go

以两种不同方式连接字符串 (Golang Playground)

go run cat.go

模运算找到除法的余数 (Golang Playground)

go run modulo.go

用另一个字符串分割字符串并从结果创建数组 (Golang Playground)

go run split.go

阿克曼函数的示例实现 (Golang Playground)

go run ackermann.go

欧几里得算法的示例实现 (Golang Playground)

go run euklid.go

将函数作为参数提交 (Golang Playground)

go run functioncallback.go

由函数返回的函数 (Golang Playground)

go run functionclosure.go

具有未知数量输入的函数(可变参数函数) (Golang Playground)

go run functionvariadic.go

空接口作为参数(你不知道类型) (Golang Playground)

go run interface.go

执行 Shell/Bash 命令并打印其输出值 (Golang Playground)

go run shell.go

创建具有函数的结构体(对象) (Golang Playground)

go run oop.go

依赖注入以便于测试

cd beginner/di go test

Go 中的哈希(md5, sha) (Golang Playground)

go run hashing.go

进阶

基准测试示例(使用 JSON marshal 和 unmarshal 作为示例) (Golang Playground) 从根目录 ($GOPATH/github.com/SimonWaldherr/golang-examples) 运行此命令:

go test -bench=. -benchmem advanced/json_bench/main_test.go

使用 os.Stdin 制作可管道化的 unix 应用程序 (Golang Playground)

go run pipe.go

AES-GCM 加密示例 (Golang Playground)

go run aesgcm.go

Bcrypt 哈希示例 (Golang Playground) 在运行此文件之前,请通过运行 go get golang.org/x/crypto/bcrypt 安装包 golang.org/x/crypto/bcrypt

go run bcrypt.go

在数组中搜索元素是否存在 (Golang Playground)

go run in_array.go

计算三角形 (Golang Playground)

go run pythagoras.go (float|?) (float|?) (float|?)

从标准输入读取(但不等待回车键)

go run getchar.go

等待和休眠 (Golang Playground)

go run wait.go

后进先出示例(Golang中的弹出和压入) (Golang Playground)

go run lifo.go

通过正则表达式分割字符串并将结果生成数组 (Golang Playground)

go run regex.go

更高级的正则表达式(带时间和日期) (Golang Playground)

go run regex2.go

使用我的 golibs regex 包 并玩得开心 (Golang Playground)

go run regex3.go

计算并打印斐波那契数列 (Golang Playground)

go run fibonacci.go

计算并打印请求的(第32个)质数 (Golang Playground)

go run prime.go 32

处理数字、字符串和 switch-case (Golang Playground)

go run numbers.go

使用模板创建和填充文档(此示例使用 LaTeX) (Golang Playground)

go run template.go pdflatex -interaction=nonstopmode template_latex.tex

启动一个定时器(定期执行任务)

go run ticker.go

在超时情况下执行操作 (Golang Playground)

go run timeout.go

将 go 对象转换为 json 字符串 (Golang Playground)

go run json.go

在 go 应用中运行 unix/shell 命令

go run exec.go

通过管道压缩

go run compress.go

通过文件压缩

go run compress2.go

解析 CSV (Golang Playground)

go run csv.go

将 CSV 转换为 Markdown 表格 (Golang Playground)

go run csv2md.go

将 XML 字符串解析为具有未定义字段的结构体 (Golang Playground)

go run xml.go

运行一个自杀应用

go run suicide.go

GoCV : 视频演示

go run hello_video.go

GoCV : 人脸检测

go run face_detect.go 0 model/haarcascade_frontalface_default.xml

运行泛型示例 (Golang Playground)

go run generic.go

专家

用 go 计算 π (leibniz、euler 和 prime 会一直运行,直到你通过 CTRL+C 停止它)

go run pi2go.go leibniz go run pi2go.go euler go run pi2go.go prime

用 go 计算 π - 与上面相同 - 但有实时输出(基于 gcurses)

go run pi2go-live.go leibniz go run pi2go-live.go euler go run pi2go-live.go prime

列出工作目录中的文件

go run explorer.go

从 golang 运行汇编代码

go run assembly.go

从 golang 运行 C 代码

go run cgo.go

使用 golang 模板生成 Go 代码

go run codegen.go

从 rgb 转换为 hsl (Golang Playground)

go run color.go

使用 Golang 实现 Telnet

go run telnet.go

最小的 Golang http 服务器

go run httpd.go

安全的 Golang http 服务器

go run httpsd.go

最小的 Golang http 代理

go run proxy.go

读取和写入 cookies

go run cookies.go

演示多线程/并行计算的威力 你必须将 GOMAXPROCS 设置为大于 1 的值才能看到效果

export GOMAXPROCS=8 time go run parallel.go true time go run parallel.go false

动态数量的通道

time go run dynparallel.go 8

运行编译器并注释每一个包含错误的行

go build gocomment.go ./gocomment go-app.go

将图像转换为灰度图和颜色反转图

go run image.go

生成一个包含三个彩色圆圈(带交集)的图像

go run image2.go

生成表示曼德布罗特分形的图像

go run image3.go

Sql (sqlite) Golang 示例 也许你还想看看我的 sql-examples 项目

go run sqlite.go insert test go run sqlite.go select

公钥/非对称加密签名和验证

go run ppk-crypto.go

命令行参数 Golang 示例 我们可以通过在命令行中指定运算符 '-' 及参数名称和要设置的值来获取参数值。例如 -env=qa

go run command_line_arguments.go go run command_line_arguments.go -env=qa -consumer=true

Cron Golang 示例 我们可以通过 cron 在特定时间触发函数

go run cron.go

Map Golang 示例 golang 中的哈希表标准函数

go run map.go

编译

Golang 的一个重要特性是,你可以通过 go run name.go 启动 go 应用程序,也可以通过 go build name.go 将其编译为可执行文件。之后你可以启动编译后的版本,它启动速度会更快。 如果你启动 fibonacci.go 和编译后的版本,你会注意到最后一行包含的执行时间差别不大,但如果你用 time ./fibonacci 32time go run ./fibonacci.go 32 启动,你就会看到差异。

许可

Copyright © 2024 Simon Waldherr 双重许可。有关详细信息,请参阅 LICENSE 文件。

编辑推荐精选

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
问小白

问小白

全能AI智能助手,随时解答生活与工作的多样问题

问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。

热门AI助手AI对话AI工具聊天机器人
Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

下拉加载更多