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

编辑推荐精选

Vora

Vora

免费创建高清无水印Sora视频

Vora是一个免费创建高清无水印Sora视频的AI工具

Refly.AI

Refly.AI

最适合小白的AI自动化工作流平台

无需编码,轻松生成可复用、可变现的AI自动化工作流

酷表ChatExcel

酷表ChatExcel

大模型驱动的Excel数据处理工具

基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。

AI工具酷表ChatExcelAI智能客服AI营销产品使用教程
TRAE编程

TRAE编程

AI辅助编程,代码自动修复

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

AI工具TraeAI IDE协作生产力转型热门
AIWritePaper论文写作

AIWritePaper论文写作

AI论文写作指导平台

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

AI辅助写作AI工具AI论文工具论文写作智能生成大纲数据安全AI助手热门
博思AIPPT

博思AIPPT

AI一键生成PPT,就用博思AIPPT!

博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。

AI办公办公工具AI工具博思AIPPTAI生成PPT智能排版海量精品模板AI创作热门
潮际好麦

潮际好麦

AI赋能电商视觉革命,一站式智能商拍平台

潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。

iTerms

iTerms

企业专属的AI法律顾问

iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。

SimilarWeb流量提升

SimilarWeb流量提升

稳定高效的流量提升解决方案,助力品牌曝光

稳定高效的流量提升解决方案,助力品牌曝光

Sora2视频免费生成

Sora2视频免费生成

最新版Sora2模型免费使用,一键生成无水印视频

最新版Sora2模型免费使用,一键生成无水印视频

下拉加载更多