GO語言學習

2021-07-11 16:25:56 字數 3247 閱讀 2065

sudo apt-get install golang
但是用ubuntu的庫安裝有幾個不好的地方:

因此建議不要使用ubuntu的庫安裝golang環境

golang社群的安裝指導

wget 

tar -c /usr/local -zxf go1.6.2.linux-amd64.tar.gz

設定環境變數,修改etc/profile檔案,使預設搜尋go所在位置

export path=$path:/usr/local/go/bin
如果go安裝在其他位置,將其他位置加入path路徑中

設定go的工作環境,修改$home/.profile檔案

export gopath=$home/gowork
測試hello-world

mkdir $home/gowork/src/hello

cd $home/gowork/src/hello && touch hello.go

將以下**輸入hello.go

package main

import "fmt"

func main()

編譯和測試

go install hello

$gopath/bin/hello

由於neocomplete外掛程式要求vim7.4及以上,並且要求vim 支援lua,但是ubuntu 14.04 庫安裝的vim不支援lua,所以需要解除安裝後從源**安裝。 參考

// 解除安裝原來的vim, 如果原來沒有gvim,則命令中刪除gvim

sudo apt-get remove vim vim-runtime gvim

//安裝vim依賴的包和工具,如果不需要桌面環境的支援(gvim),則在命令中刪除gnome\gnomeui\libgtk\libatk\libbonoboui\libcairo\libx11\libxpm\libxt, 如果使用git而不是hg,則刪除mercurial

sudo apt-get install libncurses5-dev libgnome2-dev libgnomeui-dev \

libgtk2.0-dev libatk1.0-dev libbonoboui2-dev \

libcairo2-dev libx11-dev libxpm-dev libxt-dev python-dev \

ruby-dev mercurial

// install lua

sudo apt-get install liblua5.2-dev lua5.2

//compile vim74 from source, 如果沒有桌面環境,則可刪除<--enable-gui=gtk2>

wget

tar xvf vim-7.4.tar.bz2

cd vim74

./configure --with-features=huge \

--enable-multibyte \

--enable-rubyinterp \

--enable-pythoninterp \

--with-python-config-dir=/usr/lib/python2.7/config \

--enable-perlinterp \

--enable-luainterp \

--enable-gui=gtk2 --enable-cscope --prefix=/usr

//set vim74 rumtimedir, and finish install

make vimruntimedir=/usr/share/vim/vim74

sudo make install

//check installation by typing vim --version in shell or :echo has("lua") in vim.

安裝vundle,用來管理vim外掛程式, vundle在github上,

git clone .git ~/.vim/bundle/vundle.vim
配置$home目錄下的.vimrc檔案,從鏈結位址上貼上過來即可(略)

安裝vim-go, vim的go語言外掛程式, 修改.vimrc檔案,新增如下:

plugin 'fatih/vim-go'

vim-go要完全工作,還需要一些必要的工具(比如gocode, godef, goimport etc),這些工具可以通過vim自帶的:goinstallbinaries命令安裝,如果之前安裝過,可以通過:goupdatebinaries更新,這樣安裝會使gocode等工具安裝在$gopath/bin目錄下。

安裝neocomplete.vim, 這是vim-go推薦的實時自動補全的外掛程式

plugin 'shougo/neocomplete.vim'

安裝ctags + gotags + tagbar, 其中由於ctags不支援go,所以使用與ctags相容的gotags。

// install ctags

wget

tar -zxf ctags-5.8.tar.gz

cd ctags && ./configure && make && make install

// install gotags, 具體見gotags的github

//add config to .vimrc for quick start, 具體見tagbar的github

nmap :tagbartoggle

vim配置完之後,需要重新登陸終端才能生效。

Go語言學習

執行 go run go main函式 打包 go build 用於測試編譯包,在專案目錄下生成可執行檔案 有main包 go install 主要用來生成庫和工具。一是編譯包檔案 無main包 將編譯後的包檔案放到 pkg 目錄下 gopath pkg 二是編譯生成可執行檔案 有main包 將可執...

Go語言學習九 Go語言指標

go 語言中指標是很容易學習的,go 語言中使用指標可以更簡單的執行一些任務。接下來讓我們來一步步學習 go 語言指標。我們都知道,變數是一種使用方便的佔位符,用於引用計算機記憶體位址。go 語言的取位址符是 放到乙個變數前使用就會返回相應變數的記憶體位址。package main import f...

Go語言學習十一 go語言切片

go 語言切片是對陣列的抽象。go 陣列的長度不可改變,在特定場景中這樣的集合就不太適用,go中提供了一種靈活,功能強悍的內建型別切片 動態陣列 與陣列相比切片的長度是不固定的,可以追加元素,在追加時可能使切片的容量增大。你可以宣告乙個未指定大小的陣列來定義切片 var identifier typ...