Go語言開發環境配置

来源:http://www.cnblogs.com/kungfupanda/archive/2016/06/02/5551683.html
-Advertisement-
Play Games

http://blog.csdn.net/hil2000/article/details/41261267/ 一.我為什麼要學習go語言 當今已經是移動和雲計算時代,Go出現在了工業向雲計算轉型的時刻,簡單、高效、內 置併發原語和現代的標準庫讓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


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 組件配置添加: common\components\XmlParser 然後就可以在控制器里直接取 xml格式適合微信公眾號開發。 ...
  • 1.將對象轉換為JSON字元串,返回值為一個JSON字元串 public static String toJson(Object value) { try { return mapper.writeValueAsString(value); } catch (Exception e) { e.pri ...
  • 來自http://blog.csdn.net/cctt_1/article/details/8639903 介面代碼: package myws; import javax.jws.WebParam; import javax.jws.WebService; /** * * @author 帳前卒 ...
  • 初學者 作為初學者,通常情況下,我們都會買一本PHP教材,或者在網上看免費教程,這當然是學習的好途徑。因為,這些書籍和網上的免費教程,基本上都是由淺入深的漸進式教學方式,基礎知識居多,高級知識占少量的部分。這樣,可以讓初學者很快的入門,並且建立信心。 我的唯一的一本PHP入門教材是【PHP與MySQ ...
  • 引言 對於 Python 來說,並不缺少併發選項,其標準庫中包括了對線程、進程和非同步 I/O 的支持。在許多情況下,通過創建諸如非同步、線程和子進程之類的高層模塊,Python 簡化了各種併發方法的使用。除了標準庫之外,還有一些第三方的解決方案,例如 Twisted、Stackless 和進程模塊。本 ...
  • Apache和IIS分別有自己的偽靜態操作方法,那在Servers2003_IIS需要給PHP程式使用偽靜態呢?安裝rewrite插件包。 一、下載rewrite插件包,一般裡面必須有httpd.ini和Rewrite.dll,如圖: 二、一般推薦將偽靜態包放至網站根目錄下,然後在需要偽靜態的網站右 ...
  • 編譯器到底做了什麼實現的虛函數的晚綁定呢?我們來探個究竟。 編譯器對每個包含虛函數的類創建一個表(稱為V TA B L E)。在V TA B L E中,編譯器放置特定類的虛函數地址。在每個帶有虛函數的類 中,編譯器秘密地置一指針,稱為v p o i n t e r(縮寫為V P T R),指向這個對 ...
  • 適用場合: 7.3 工廠模式的適用場合 創建新對象最簡單的辦法是使用new關鍵字和具體類。只有在某些場合下,創建和維護對象工廠所帶來的額外複雜性才是物有所值。本節概括了這些場合。 7.3.1 動態實現 如果需要像前面自行車的例子一樣,創建一些用不同方式實現同一介面的對象,那麼可以使用一個工廠方法或簡 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...