Go語言開發環境配置

http://blog.csdn.net/hil2000/article/details/41261267/

一.我為什么要學習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語言開發環境搭建

1.Go的安裝

(1)下載go安裝程序 下載地址:https://golang.org/dl/?(墻內下載地址http://www.golangtc.com/download),如果是您的系統是windows32 位系統,請選擇go1.3.3.windows-386.msi即可 (2)下載后直接雙擊msi文件安裝,默認安裝在c:\go (3)安裝完成后默認會在環境變量 Path 后添加 Go 安裝目錄下的 bin 目錄 C:\Go\bin\,并添加環境變量 GOROOT,值為 Go 安裝根目錄 C:\Go\ (4).驗證是否安裝成功,在運行中輸入 cmd 打開命令行工具,在提示符下輸入 go (5)設置工作空間gopath目錄(Go語言開發的項目路徑) Windows 設置如下,新建一個環境變量名稱叫做GOPATH,值為你的工作目錄,例如筆者的設置GOPATH=e:\mygo 以上 %GOPATH% 目錄約定有三個子目錄: src 存放源代碼(比如:.go .c .h .s等) pkg 編譯后生成的文件(比如:.a) bin 編譯后生成的可執行文件(為了方便,可以把此目錄加入到 windows的PATH 變量中,在環境變量path后追加%GOPATH%\bin) (6)用go env命令查看環境變量設置

2.IDE的選擇和設置
Go的開發ide目前有很多選擇,比如LiteIDE,Vim,Emcas,goEclipse等,這里推薦Sublime Text 2(以下簡稱Sublime)+GoSublime+gocode組合

(1)下載安裝Sublime Text 2?http://www.sublimetext.com/ (2)安裝Package Control包管理工具 Ctrl + `(該鍵位tab鍵上方的~鍵)組合鍵打開Sublime2的命令行(注意輸入法模式是英文狀態),然后粘貼執行如下代碼

[python]?view plain?copy
?在CODE上查看代碼片派生到我的代碼片
  1. import?urllib2,os;?pf='Package?Control.sublime-package';?ipp=sublime.installed_packages_path();?os.makedirs(ipp)?if?not?os.path.exists(ipp)?else?None;?urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler()));?open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace('?','%20')).read());?print?'Please?restart?Sublime?Text?to?finish?installation??

?

然后重啟sublime,可以發現在在菜單欄多了一個如下的欄目,說明Package Control已經安裝成功了。

(3)安裝GoSublime插件 Ctrl+Shift+p打開Package Controll 輸入pcip(即“Package Control: Install Package”的縮寫),然后輸入GoSublime,按確定就開始安裝了。 (4)同上步(3)安裝Go Build (5)安裝gocode代碼自動提示 打開windows的命令行提示符程序,開始-》運行-》cmd運行如下代碼 go get -u github.com/nsf/gocode go install github.com/nsf/gocode 如果有錯誤提示,那么要安裝git客戶端(windows git 下載地址?http://msysgit.github.io/?,同時要在path環境變量后追加git配置 ;D:\Program Files\Git\bin;D:\Program Files\Git\libexec\git-core;)

(6)設置go非標準庫智能提示

最新版本的 gosublime 要求設置你的 GOPATH 變量到它的配置文件中,否則可能無法支持對非標準庫包的代碼輸入提示,打開 Settings - Default,拷貝所有內容,然后粘貼到 Settings - User 中(這樣的做法是為了保證你的修改不會被插件更新而重置,這插件更新很頻繁)。 接下來,在 env 這欄中輸入你的 GOPATH 變量,重啟設置生效。

?

[plain]?view plain?copy
?在CODE上查看代碼片派生到我的代碼片
  1. "env":?{??
  2. ????"GOROOT":"C:\\go",??
  3. ????????"GOPATH":?"E:\\mygo"??
  4. ????????},??



?

三.編寫和運行Go程序

1.用sublime在gopath/src目錄下新建一個程序hello.go,代碼如下

2.運行go程序 CTRL+B打開sublime的命令行,在提示符下輸入 go run hello.go

3.編譯生成exe程序 CTRL+B打開sublime的命令行,在提示符下輸入 go build hello.go

四 .go語言學習資料

1.go指南:官網鏈接:https://go-tour-zh.appspot.com/welcome/1(需要梯子),如果無法打開請用國內鏈接:http://tour.studygolang.com/

2.《the way to go》,如果看英文感覺吃力,github上無聞大牛已經做了中文譯本:https://github.com/Unknwon/the-way-to-go_ZH_CN

3.《Go 學習筆記 第三版》雨痕寫的,該電子書在github開源:https://github.com/qyuhen/book

4.《go web 編程》,是謝大(beego的作者)寫的電子書,github中文目錄鏈接:https://github.com/astaxie/build-web-application-with-golang/blob/master/zh/preface.md

5.《go編程基礎》視頻教程,此教程是無聞大牛講解的,github視頻鏈接:https://github.com/Unknwon/go-fundamental-programming

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/388566.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/388566.shtml
英文地址,請注明出處:http://en.pswp.cn/news/388566.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

微軟研發致勝策略

第一章奠定基礎 1.千萬不要把程序設計師的時間浪費在改善產品以外的工作上。 2.保護程序設計師不受任何阻礙和干擾。 3.永遠記得自己真正的目標,然后讓團隊用最有將效又最愉快的方法把它完成。 4.理清詳細的項目目…

熊貓tv新功能介紹_您應該知道的4種熊貓繪圖功能

熊貓tv新功能介紹Pandas is a powerful package for data scientists. There are many reasons we use Pandas, e.g. Data wrangling, Data cleaning, and Data manipulation. Although, there is a method that rarely talks about regarding Pandas package and that is the …

CPP_封裝_繼承_多態

類的三方法:封裝,繼承,多態。封裝:使用一整套方法去創建一個新的類型,這叫類的封裝。繼承:從一個現有的類型基礎上,稍作改動,得到一個新的類型的方法,叫類的繼承。多態&a…

win與linux淵源,微軟與Linux從對立走向合作,WSL是如何誕生的

原標題:微軟與Linux從對立走向合作,WSL是如何誕生的正文Windows Subsystem for Linux(WSL)的開發,讓微軟從Linux的對立面走向合作,并且不斷加大對開源社區的支持力度。而作為微軟歷史上的重要轉折點,外界對WSL技術在Pr…

文件編輯器 vi

1、關于文本編輯器; 文本編輯器有很多,比如圖形模式的gedit、kwrite、OpenOffice ... ... ,文本模式下的編輯器有vi、vim(vi的增強版本)和nano ... ... vi和vim是我們在Linux中最常用的編輯器。我們有必要介紹一下vi&a…

MFC80.DLL復制到程序目錄中,也有的說復制到安裝目錄中

在用VS2005學習C調試程序的時候,按F5鍵,總提示這個問題, 不曉得什么原因,網上有的說找到MFC80.DLL復制到程序目錄中,也有的說復制到安裝目錄中,可結果很失望,也有的VS2005安裝有問題&#xff0…

vs顯示堆棧數據分析_什么是“數據分析堆棧”?

vs顯示堆棧數據分析A poor craftsman blames his tools. But if all you have is a hammer, everything looks like a nail.一個可憐的工匠責怪他的工具。 但是,如果您只有一把錘子,那么一切看起來都像釘子。 It’s common for web developers or databa…

服務器

服務器主流品牌:華為、浪潮、戴爾、惠普華為服務器:華為FusionServer RH2288 V3 華為FusionServer RH5885 V3 浪潮服務器: 浪潮英信NP3020M4 浪潮英信NF5280M4 戴爾服務器: 戴爾PowerEdge R730 機架式服務器 戴爾PowerEdge R740 機…

樹莓派 zero linux,樹莓派 zero基本調試

回家之前就從網上購買了一堆設備,回去也不能閑著,可以利用家里相對齊全的準備安裝調試。結果人還沒回來,東西先到了。購買的核心裝備是樹莓派zero w,雖然已經知道它比家族大哥樹莓派小不少,但拿到手里還是驚奇它的小巧…

error C2440 “static_cast” 無法從“void (__thiscall CPppView )(void)”轉換為“LRESULT (__thiscall

error C2440 “static_cast” 無法從“void (__thiscall CPppView )(void)”轉換為“LRESULT (__thiscall CWnd )(WPARAM,LPARAM)” 不能轉換void (_thiscall CMainFrame::*)(void)to LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)開發平臺由VC6.0升級至VS2005,需要…

簡單的編譯流程

簡易編譯器流程圖: 一個典型的編譯器,可以包含為一個前端,一個后端。前端接收源程序產生一個中間表示,后端接收中間表示繼續生成一個目標程序。所以,前端處理的是跟源語言有關的屬性,后端處理跟目標機器有關的屬性。 復…

廣告投手_測量投手隱藏自己的音高的程度

廣告投手As the baseball community has recently seen with the Astros 2017 cheating scandal, knowing what pitch is being thrown gives batters a game-breaking advantage. However, unless you have an intricate system of cameras and trash cans set up, knowing wh…

linux事務隔離級別,事務的隔離級別(Transaction isolation levels)2

READ COMMITTEDREAD COMMITTED這是數據庫默認的隔離級別。它能保證你不能讀取那張表格數據,只要有其它事務還在改變這張表格數據。可是,因為sql server在select操作的時,鎖表格時間就那么一小會兒,如果一個事務在READ COMMITTED級…

Asp導出到Excel之二

response.contentType "application/vnd.ms-excel" response.addheader "Content-Disposition", "attachment; filename引出文件.xls" 一、適用于動態和表態表。 二、頁面最好只存放數據表,不要有其它內容。 三、對于分頁的情…

warning C4996: “strcpy”被聲明為否決的解決辦法

VC2005中,使用了很多標準的C函數,比如fopen,strcpy之類的。編譯時會出現警告,比如這個: d:\xxxx.c(1893) : warning C4996: “strcpy”被聲明為否決的 緊接著IDE有提示說:“This function or variable…

驗證部分表單是否重復

1. 效果 圖片中的名稱、機構編碼需要進行重復驗證2. 思路及實現 表單驗證在獲取數據將需要驗證的表單數據進行保存this.nameChangeTemp response.data.orgName;this.codeChangeTemp response.data.orgCode; 通過rule對表單進行驗證 以名字的驗證為例rules: {orgName: [// 設置…

python bokeh_提升視覺效果:使用Python和Bokeh制作交互式地圖

python bokehLet’s face it, fellow data scientists: our clients LOVE dashboards. Why wouldn’t they? Visualizing our data helps us tell a story. Visualization turns thousands of rows of data into a compelling and beautiful narrative. In fact, dashboard vi…

用C#寫 四舍五入函數(原理版)

doubled 0.06576523;inti (int)(d/0.01);//0.01決定了精度 doubledd (double)i/100;//還原 if(d-dd>0.005)dd0.01;//四舍五入 MessageBox.Show((dd*100).ToString()"%");//7%,dd*100就變成百分的前面那一部分了

C++設計UDP協議通訊示例

UDP是一種面向非連接,不可靠的通訊協議,相對于TCP來說,雖然可靠性不及,但傳輸效率較高   一、緒言   UDP是一種面向非連接,不可靠的通訊協議,相對于TCP來說,雖然可靠性不及,但…

浪里個浪 FZU - 2261

TonyY是一個喜歡到處浪的男人,他的夢想是帶著蘭蘭姐姐浪遍天朝的各個角落,不過在此之前,他需要做好規劃。 現在他的手上有一份天朝地圖,上面有n個城市,m條交通路徑,每條交通路徑都是單行道。他已經預先規劃…