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 文件。

编辑推荐精选

GPT Plus|Pro充值

GPT Plus|Pro充值

GPT充值

支持 ChatGPT Plus / Pro 充值服务,支付便捷,自动发货,售后可查。

GPT Image 2中文站

GPT Image 2中文站

AI 图片生成平台

GPT Image 2 是面向用户的 AI 图片生成平台,支持文生图、图生图及多模型创意工作流。

Vecbase

Vecbase

你的AI Agent团队

Vecbase 是专为 AI 团队打造的智能工作空间,将数据管理、模型协作与知识沉淀整合于一处。算法、产品与业务在同一平台无缝协同,让从数据到 AI 应用的落地更快一步。

音述AI

音述AI

全球首个AI音乐社区

音述AI是全球首个AI音乐社区,致力让每个人都能用音乐表达自我。音述AI提供零门槛AI创作工具,独创GETI法则帮助用户精准定义音乐风格,AI润色功能支持自动优化作品质感。音述AI支持交流讨论、二次创作与价值变现。针对中文用户的语言习惯与文化背景进行专门优化,支持国风融合、C-pop等本土音乐标签,让技术更好地承载人文表达。

QoderWork

QoderWork

阿里Qoder团队推出的桌面端AI智能体

QoderWork 是阿里推出的本地优先桌面 AI 智能体,适配 macOS14+/Windows10+,以自然语言交互实现文件管理、数据分析、AI 视觉生成、浏览器自动化等办公任务,自主拆解执行复杂工作流,数据本地运行零上传,技能市场可无限扩展,是高效的 Agentic 生产力办公助手。

lynote.ai

lynote.ai

一站式搞定所有学习需求

不再被海量信息淹没,开始真正理解知识。Lynote 可摘要 YouTube 视频、PDF、文章等内容。即时创建笔记,检测 AI 内容并下载资料,将您的学习效率提升 10 倍。

AniShort

AniShort

为AI短剧协作而生

专为AI短剧协作而生的AniShort正式发布,深度重构AI短剧全流程生产模式,整合创意策划、制作执行、实时协作、在线审片、资产复用等全链路功能,独创无限画布、双轨并行工业化工作流与Ani智能体助手,集成多款主流AI大模型,破解素材零散、版本混乱、沟通低效等行业痛点,助力3人团队效率提升800%,打造标准化、可追溯的AI短剧量产体系,是AI短剧团队协同创作、提升制作效率的核心工具。

seedancetwo2.0

seedancetwo2.0

能听懂你表达的视频模型

Seedance two是基于seedance2.0的中国大模型,支持图像、视频、音频、文本四种模态输入,表达方式更丰富,生成也更可控。

nano-banana纳米香蕉中文站

nano-banana纳米香蕉中文站

国内直接访问,限时3折

输入简单文字,生成想要的图片,纳米香蕉中文站基于 Google 模型的 AI 图片生成网站,支持文字生图、图生图。官网价格限时3折活动

扣子-AI办公

扣子-AI办公

职场AI,就用扣子

AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!

下拉加载更多