千家信息网

GO的作用什么呢

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这篇文章的内容主要围绕GO的作用什么呢进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!Go 的优点:实现快 +
千家信息网最后更新 2025年12月02日GO的作用什么呢

这篇文章的内容主要围绕GO的作用什么呢进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!

Go 的优点:实现快 + 资源占用低 + 任意环境随便跑,综合考虑在很多场景十分好使 。

  1. Go 适合造轮子,哪个库不好用就自己造。

  2. Go 适合写工具,比如 hugo 、hub、fzf,还有国人写的 linux 下的百度 pan client 都是 go 实现的。

  3. Go 适合实现 C/C++ 一部分业务,Java 的大部分业务。

  4. Go 适合做最外层的胶水,通过 RPC/REST/CGO 粘合不同语言的模块,而在这个胶水层还可以实现各种业务逻辑,又不用像 shell/py/node 有诸多顾虑和局限。

Go 提供了纤程、指针、 unsafe, cgo 加上 C/C++ 兼容的内存布局和跨平台的汇编,有了这些你能做的事情的上限基本就非常高了。

所以问题不是它适合做什么,是你有能力用它做什么。

在用 Go 写一个渲染器,因为学图形,需要一个应用框架来复现各类图形技术、论文和学习实践 PBRT 。

开始用 C++ 和 Go 同时写,主要实现是 C++,Go 只用来做架构探路,搞搞快速原型。

中间需要实现一个异步消息框架,负责 GLFW 的 key event 和 window event 与图形逻辑、骨骼计算、camera 控制进行数据通讯,还要保证所有绘制 event 都在主线程做 draw call。这个功能用 Go 实现的逻辑 100 行不到,只用了3个特性:chan, init(),不定长参数。当初设计 + 查语法 + 写完 + 测试只花了大概 40 分钟,然后一直用到现在。

在做的过程中发现 Go 实现各种逻辑太方便了,而且基本上没啥干不了的,最后决定全部用 Go ,放弃 C++。

中间发现 Go 的标准库不支持 DDS 贴图,直接撸了个 Go 版的 DDS 库。大致就是看了下 wiki 了解了 DDS 格式,然后从 nv_dds 找到关键代码,逐行翻译成 Go 就搞定了,非常简单。

现在在写骨骼动画和 GUI, GUI 在参考一个日本人移植到 Go 的 nanovg 和 nanogui,非常有价值,他用 Go 实现了基于 OpenGL 的 draw api 还用 Go 搞定了 true type 字体的绘制。

因为需要管理大量模型的状态,打算用 orm + sqlite。但 gorm 的很多地方都不满意,也在考虑自己撸。

现在这个渲染器是这个程度:

Java 能写我的世界,C# 能写 Unity,Go 自然也能写游戏引擎,当然也能写其他更简单的系统,比如一些所谓"很复杂"的业务系统。

Go 不管写业务还是造轮子都很高效,既有高级语言特性,又能当更好的 C 用,构建部署也简单。

常规业务 Go 能被 C/C++ 碾压的主要就是瞬时的峰值内存,这个无解,但碾 Java 也没问题。

目前后端这块我没觉得什么是 Go 特别不适合干或者不能干的。

如果不用 Go,我估计也只会用 Rust,如果要写大量矩阵运算,泛型和操作符重载是仅有的我想要但 Go 没有的。

实际上用 Go 的很多也是多语言的牛人,比如 junegunn、spf13,都是背着几个几万 star 项目。

最后举几个比较偏但有意思的项目:

hunterloftis/pbr 一个 Go 写的基于物理渲染的光追渲染器

fogleman/pt 另一个光追渲染器

shibukawa/nanovgo 日本人移植的 Go 版的 nanovg,基于 OpenGL 实现了画框、画线、画字的 Go API,相当于原来 Windows 上的 Direct Draw

shibukawa/nanogui-go 上面那位作者移植的 Go 版的 nanogui,基于他移植的 nanovgo 实现的 GUI 库

Shopify/go-lua Go 实现的 lua 5.2 VM

wooga/go-entitas 一个非常精简的 ECS 实现

最后说一句,这个世界上有太多有意思的问题和领域值得学习和探索。

语言最终是用来表达你思想和思维的,只要能帮你快速解决问题达到目标,对你而言就是好语言。

什么是go

go是golang的简称,golang 是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言,其语法与 C语言相近,但并不包括如枚举、异常处理、继承、泛型、断言、虚函数等功能。

感谢你的阅读,相信你对"GO的作用什么呢"这一问题有一定的了解,快去动手实践吧,如果想了解更多相关知识点,可以关注网站!小编会继续为大家带来更好的文章!

业务 语言 问题 逻辑 移植 功能 图形 就是 C++ 学习 作用 有意思 不用 世界 内存 内容 文章 框架 特性 篇文章 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 迅歌ktv服务器升级要钱吗 我的世界服务器数据库在哪 远程管理网站服务器 数据库系统工程师证书补办 警察管理和信息网络安全监察 山东北斗卫星授时服务器云主机 邯郸棋牌软件开发 深圳南山软件开发测试 打造网络安全和信息化 网络安全防御技术介绍 阳新卫生局数据库恢复 培训机构的软件开发费用 旗开得胜伴奏软件开发 中专学校有软件开发专业吗 松江区口碑好的软件开发诚信合作 二手服务器质量 网络安全保密管理信息化 服务器上的打印后台程序怎么启动 防沉迷导致游戏服务器崩 轻量服务器公众号 网络安全漏洞选择题 天津iis服务器商家虚拟主机 计算机网络技术论文致谢男朋友 数据库提供的检索方式一般包括 web远程连接数据库 云服务器可以用本地的硬盘吗 网络安全防御技术介绍 wikitaxi数据库 家庭宽带可以连接服务器吗 兼职软件开发面试题
0