網站首頁 編程語言 正文
我為什么要學習go語言
當今已經是移動和云計算時代,Go出現在了工業向云計算轉型的時刻,簡單、高效、內 置并發原語和現代的標準庫讓Go語言尤其適合云端軟件開發(畢竟它就是為此而設計的)。到2014年,Go項目擁有了上百的核心貢獻者,其生態圈中擁有了數不盡的第三方庫和工具(https://godoc.org/),更有很多大公司開始或遷移到go語言,一些重量級的開源云項目,諸如Docker和Kubernetes 都是用Go語言實現的,一些運作基礎設置的公司,諸如Google、CloudFlare、Canonical、Digital Ocean、Github、Heroku以及微軟也都在使用Go語言開發一些重量級的項目。再來看看如下公司開源的go庫
(1)Facebook開源其go庫 https://github.com/facebookgo
(2)Dropbox開源了其基于Go語言的工具庫godropbox,并表示在一年前已經決定將Dropbox中對性能要求比較高的后端程序從Python遷移到Go語言。Dropbox的幾乎所有的代碼都是用Python編寫的, Python語言被廣泛使用在服務器端、桌面的客戶端、網站控制邏輯以及后端的 API 和分析上。Dropbox親睞Python簡單易學、開發效率高等特點,但是現在為了支撐日益增長的用戶數量,Dropbox不得不將部分對性能要求比較高的業務替換為有更好的并發支持和更快的運行速度的Go語言。
Go 目前已經發展到1.4版本,除了其新增的特性和bug修正外,它為實現一個新的低延遲垃圾收集器以及支持在移動終端上運行Go奠定了基礎。作為程序員我們必須在掌握精通一門語言的同時需要擴大視野,學習另外一種語言的設計思想和精髓,而我認為go再合適不過了!2015年將是Go語言大爆發的一年。
Go環境配置和GoModule
Linux相關
Linux常用操作
mkdir directory ——創建文件夾 vi file ——創建文件,再關閉vim rm file ——刪除文件 rm -rf directory ——遞歸刪除文件夾,r代表遞歸,f帶包強制 mv A B ——移動文件夾,可以用來改名 mv -rf ——同上 cp fromPath toPath ——拷貝,同樣可以加-rf rename ——重命名,需要安裝包 ls/ll/tree ——列出文件夾 cat ——打印文件內容 cd path ——進入路徑 sudo apt install package ——Ubuntu安裝
vim常用操作
:w ——寫入 :q ——退出 :wq ——保存退出 home/end ——行首行位 G/gg ——文末,開頭 pageup/pagedown ——翻頁 backspace/delete ——前刪,后刪 dd/yy ——刪除復制一樣 ndd/nyy ——n換成數字,多行 p/P ——光標向下粘貼,光標向上粘貼 u/ctrl+u/ctrl+r ——撤銷 :/word ——光標向下搜索 :?word ——光標向上搜索 :1,$s/word1/word2/g ——替換,1可省略 :1,$s/word1/word2/gc ——需要確認的替換 i ——進入輸入模式 ESC ——退出輸入模式 ctrl+q ——卡死強退輸入模式 insert ——切換插入或替換輸入
golang環境配置
1.官網下載go包體-拖進linux
2.解壓
sudo tar -C /usr/local -zxvf go1.11.5.linux-amd64.tar.gz
3.配置環境變量
vim ~/.bashrc
添加:
#源碼包 export GOROOT=/usr/local/go #用戶工作路徑 export GOPATH=$HOME/gopath #系統環境變量 export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
source ~/.bashrc
go verison——是否成功輸出go版本;
goModule
任意位置創建項目文件夾;
打開終端輸入:go mod init + 包名
文件夾下會生成go.mod 和 go.sum兩個文件夾
)
go.mod記錄了go的版本和依賴包的版本;
go.sum是對依賴包整體去了hash記錄,同時也多go.mod取哈希記錄;
保證多人合作時引用的包體版本一致;
根據go.mod中依賴,通過go get下載同版本依賴包即可;
Life is too short for so much sorrow.
原文鏈接:https://www.cnblogs.com/littleperilla/p/15820297.html
相關推薦
- 2023-11-22 Linux在Ubuntu Linux下如何壓縮一個文件夾/文件
- 2022-08-02 Python?Http發送請求淺析_python
- 2022-06-10 ASP.NET?Core使用EF查詢數據_實用技巧
- 2022-04-01 Unable to connect to the server: x509: certificate
- 2023-03-16 Redis設置key的過期時間_Redis
- 2022-04-20 Python設計模式結構型組合模式_python
- 2022-07-29 C++數據結構之單鏈表的實現_C 語言
- 2022-05-09 Python的數據結構與算法的隊列詳解(3)_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支