Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。http://www.cnblogs.com/dongritengfei/archive/2011/04/30/2033246.htmlGo語言是Google繼Simple語言之後推出的第二款程式設計語言,該語言的被號稱是:互連網時代的C。這就意味著:1.具有互連網web開發所需的特點,即開發高效;2.具有C語言一樣的運行速度,即運行高效。相信這兩個特點會讓你找到歸宿了吧。1.
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。環境:ubuntu12 && 通過apt-get安裝的go語言之前瞭解了python查看協助文檔的方式,感覺go也應該有他自己的協助文檔,就嘗試開啟它的文檔,發現有godoc命令。運行之,命令提醒,可以這樣運行文檔godoc
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。go version 1.1.2 For example you need to install the webscoket pakeage try go get code.google.com/p/go.net/websocket catch $GOPATH no set? that you need set the GOPATH in the
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。先產生ssl認證openssl genrsa -out key.pem 2048openssl req -new -x509 -key key.pem -out cert.pem -days 1095 然後,大概這樣package mainimport ( "log" "net/http")func SayHello(w http.ResponseWriter, req
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。Go語言中的內建函數new和make是兩個用於記憶體配置的原語(allocation primitives)。對於初學者,這兩者的區別也挺容易讓人迷糊的。簡單的說,new只分配記憶體,make用於slice,map,和channel的初始化。 1.
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。前段時間嘗試了一點 Google 的 Go 語言,感覺其很多特性還是不錯的。Go 語言旨在結合傳統編譯型的靜態語言和解釋型的動態語言的優點,在其中找到一個平衡。從而打造一個既快速(編譯執行),又方便編程的語言(動態語言往往文法簡單快捷)。同時,Go 語言還具備豐富的特性以支援並發編程,這在現在多核非常普及的情況下,是很重要和強大的一個功能。 Go 語言的並發特性主要有 goroutine, channel 等。
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。控制語句 條件陳述式 條件陳述式不需要使用括弧將條件包含起來(); 無論語句體內有幾條語句,花括弧{}都是必須存在的; 左花括弧{必須與if或者else處於同一行; 在if之後,條件陳述式之前,可以添加變數初始化語句,使用;間隔; 在有傳回值的函數中,不允許將“最終的”return語句包含在if…else…結構中,否則會編譯失敗: func example(x int) int{ var result
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 Methods Pointers vs. Values Methods can be defined for any named type that is not a pointer or an interface; the receiver does not have to be a struct. 除了指標和介面(interface) 可以為任意自訂的類型定義方法 而且這個自訂類型可以不是結構體struct
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。goroutine之間的同步goroutine是golang中在語言層級實現的輕量級線程,僅僅利用go就能立刻起一個新線程。多線程會引入線程之間的同步問題,經典的同步問題如生產者-消費者問題,在c,java層級需要使用鎖、訊號量進行共用資源的互斥使用和多線程之間的時序控制,而在golang中有channel作為同步的工具。1. channel實現兩個goroutine之間的通訊package mainimport
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。1:beego 模板文法指南:http://blog.go-china.org/03-beego-template2:go 語言sublimetext2配置:http://www.kankanews.com/ICkengine/archives/29343.shtml3:go中國部落格:http://blog.go-china.org/4:go驗證碼:http://www.cnblogs.com/ghj1976/p/3433161
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。類型方法1. 給類型定義方法在Go語言中,我們可以給任何類型(包括內建類型,但不包括指標和介面)定義方法。例如,在實際編程中,我們經常使用[ ]byte的切片,我們可以定義一個新的類型:type ByteSlice []byte然後我們就可以定義方法了。例如,假如我們不想使用內建的append函數,我們可以實現一個自己的append方法:func Append(slice, data[]byte) []byte { l :=
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 用revel建立的new建立了一個最簡單的樣本app,並用ab做簡單的效能測試。設定並發數為1000。 結果如下: dev模式下運行:1200次/每秒 prod模式下運行:4800次/每秒 預設建立的app只能使用單個cpu,對多核多cpu伺服器來說是個資源浪費,通過修改init.go 在其中添加如下代碼: runtime.GOMAXPROCS(runtime.NumCPU())
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 GO(golang)語言學習(1) 1.匯入包,一個主函數中只有一個main函數,包含一個main包,主函數中我們要申明main的包! package mainfunc main(){} 2.引入包檔案,譬如我們使用的是fmt包,列印helloword用,golang有一個包可見度的定義,就譬如其他語言中的private
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 1. 一個已經被關閉的 channel 永遠都不會阻塞。當一個 channel 一旦被關閉,就不能再向這個 channel 發送資料,但仍然可以嘗試從 channel 中擷取值。 2. 已經被關閉的 channel 會即時返回。 package mainimport ("fmt""sync""time")func main() {const n =
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 什麼是介面 介面是golang最重要的特性之一,在Go中,介面interface其實和其他語言的介面意思沒什麼區別。interface理解其為一種類型的規範或者約定。一種類型是不是“實現”了一個介面呢?就看這種類型是不是實現了介面中定義的所有方法。接⼝是一個或多個方法簽名的集合,任何非介面類型只要擁有與之對應的全部方法實現 (包括相同的名稱、參數列表以及傳回值。),就表示它"實現"
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。go從語言層面就支援並行程式設計goroutine(Go語言並行設計的核心),比thread高效易用package mainimport( "fmt" "runtime")func say(word string){ for i:=0; i<10; i++ {// runtime.Gosched()
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 Go 本地化該指南也有其他語言版本:Brazilian Portuguese — Português do BrasilCatalan — CatalàSpanish — EspañolFrench - FrançaisHebrew — עִבְרִיתJapanese — 日本語Korean — 한국어Romanian - RomânăChinese — 普通話 Go Playground這個指南構建在 Go
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 最近項目中有個小需求,需要將查詢結果匯出到excel。之間前java比較容易,使用POI很容易就能實現,查了下golang的文檔,發現golang下邊並沒有匯出excel的包,但是卻有一個encoding/csv的包,看了下發現可以匯出csv檔案,大家都知道csv檔案其實就是文字格式設定的excel檔案,可以直接通過excel開啟或是匯入excel。
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。vi ~/.bashrc#在檔案末尾追加如下環境變數#export GOROOT=$HOME/go#export GOARCH=386#export GOOS=linux#export GOBIN=$HOME/binhg#提示無效的命令 讓執行下面的命令 可以獲得hgsudo apt-get install mercurialhg clone -r release https://go.googlecode.com/hg/
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 package mainimport("io""fmt""log""net")const listenaddr="0.0.0.0:4000"var partner=make(chan io.ReadWriteCloser)func match(c io.ReadWriteCloser){fmt.Fprintln(c,"wait for