Project Icon

golang-examples

全面的Go语言学习示例库

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

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

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

稿定AI

稿定设计 是一个多功能的在线设计和创意平台,提供广泛的设计工具和资源,以满足不同用户的需求。从专业的图形设计师到普通用户,无论是进行图片处理、智能抠图、H5页面制作还是视频剪辑,稿定设计都能提供简单、高效的解决方案。该平台以其用户友好的界面和强大的功能集合,帮助用户轻松实现创意设计。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号