中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

GO的作用什么呢

發布時間:2022-01-17 16:50:43 來源:億速云 閱讀:187 作者:kk 欄目:大數據

這篇文章的內容主要圍繞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 的很多地方都不滿意,也在考慮自己擼。

現在這個渲染器是這個程度:

GO的作用什么呢
Java 能寫我的世界,C# 能寫 Unity,Go 自然也能寫游戲引擎,當然也能寫其他更簡單的系統,比如一些所謂“很復雜”的業務系統。

Go 不管寫業務還是造輪子都很高效,既有高級語言特性,又能當更好的 C 用,構建部署也簡單。

常規業務 Go 能被 C/C++ 碾壓的主要就是瞬時的峰值內存,這個無解,但碾 Java 也沒問題。

目前后端這塊我沒覺得什么是 Go 特別不適合干或者不能干的。

如果不用 Go,我估計也只會用 Rust,如果要寫大量矩陣運算,泛型和操作符重載是僅有的我想要但 Go 沒有的。

實際上用 Go 的很多也是多語言的牛人,比如 junegunn、spf13,都是背著幾個幾萬 star 項目。

最后舉幾個比較偏但有意思的項目:

hunterloftis/pbr 一個 Go 寫的基于物理渲染的光追渲染器

GO的作用什么呢

fogleman/pt 另一個光追渲染器

GO的作用什么呢

shibukawa/nanovgo 日本人移植的 Go 版的 nanovg,基于 OpenGL 實現了畫框、畫線、畫字的 Go API,相當于原來 Windows 上的 Direct Draw

GO的作用什么呢

shibukawa/nanogui-go 上面那位作者移植的 Go 版的 nanogui,基于他移植的 nanovgo 實現的 GUI 庫

GO的作用什么呢

Shopify/go-lua  Go 實現的 lua 5.2 VM

wooga/go-entitas 一個非常精簡的 ECS 實現

最后說一句,這個世界上有太多有意思的問題和領域值得學習和探索。

語言最終是用來表達你思想和思維的,只要能幫你快速解決問題達到目標,對你而言就是好語言。

什么是go

go是golang的簡稱,golang 是Google開發的一種靜態強類型、編譯型、并發型,并具有垃圾回收功能的編程語言,其語法與 C語言相近,但并不包括如枚舉、異常處理、繼承、泛型、斷言、虛函數等功能。

感謝你的閱讀,相信你對“GO的作用什么呢”這一問題有一定的了解,快去動手實踐吧,如果想了解更多相關知識點,可以關注億速云網站!小編會繼續為大家帶來更好的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

go
AI

翼城县| 防城港市| 出国| 兴海县| 广水市| 东兰县| 高青县| 潮州市| 安吉县| 从化市| 平湖市| 南丰县| 阿拉善左旗| 察隅县| 上虞市| 东乡族自治县| 鹤岗市| 奉节县| 安顺市| 山阴县| 田东县| 循化| 渭源县| 莆田市| 个旧市| 成安县| 平陆县| 景东| 陕西省| 六盘水市| 游戏| 苍南县| 固阳县| 湟中县| 星子县| 尚志市| 吕梁市| 青田县| 新建县| 新昌县| 清流县|