Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。golang串連mongodb需要的包:"labix.org/v2/mgo""labix.org/v2/mgo/bson"//串連資料庫 session, err := mgo.Dial("10.127.2.19:27017")//要已連線的服務器和連接埠 if err != nil { panic(err) }
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。package mainimport ("crypto/md5""fmt""io""strconv""time")func main() {crutime := time.Now().Unix()fmt.Println("crutime-->", crutime)h := md5.New()fmt.Println("h--
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。大家都知道,golang中可以這樣定義一個類型:type PowerString string這種不是物件導向中的繼承,但有點像,因為PowerString能得到string的屬性方法等。我們給PowerString寫個方法:func (ps PowerString) Print() {
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。紅/黑樹狀結構是一種基於二叉尋找樹的資料結構,它具有如下性質:(1) 二叉尋找樹的性質它都有(2) 每個節點都有一個顏色屬性,每個節點或是紅的或是黑的(3) 根節點必須是黑的(4) 每個葉子節點(nil節點)為黑(5) 如果一個節點為紅的,那麼它的兩個孩子都是黑的(6)
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。在編寫 golang 程式的過程中,channel 會經常使用。本文對 channel 的使用的確很特別,同時也非常實用。原文在此:http://dave.cheney.net/2013/04/30/curious-channels————翻譯分隔線————絕妙的 channel在 Go 程式設計語言中,channel 是一個閃耀的特性。它提供了一種強大的、在不使用鎖或臨界區的情況下,從某個 goroutine 向其他
Time of Update: 2015-06-17
這是一個建立於
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。1,安裝protocbrew tap homebrew/versionsbrew install protobufgo get code.google.com/p/goprotobuf/{proto,protoc-gen-go}go install code.google.com/p/goprotobuf/protoc-gen-gocd ~/golang/binsudo cp protoc-gen-go
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。轉自部落格園http://my.oschina.net/u/157514/blog/148285golang 語言中 也有類似javascript 的 typeof 判斷類型的 方法比如 func (a interface{}){ //第一種 if inst,ok:=a.(TypeA);ok{ inst.MethodA() }
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。使用go get安裝github上的項目時一般來說,不可避免會出錯。各種錯誤的處理辦法:必須條件:1、安裝git並配置環境變數。下載地址:http://git-scm.com/2、安裝golang環境,並配置好環境變數。 其它錯誤:1、提示 missing Mercurial
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。draw包提供了圖片的產生方法,或者繪製方法.其使用方法只需匯入響應的包即可"import image/draw"func Draw(dst Image, r image.Rectangle, src image.Image, sp image.Point, op Op)Draw是DrawMask的一種特殊形式,當DrawMask方法中mask為nil時,便是Draw函數func DrawMask(dst Image,
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。Hi, Can you help to figure out what's wrong with the following TLS test code? It's just a echo server, the expected result is to get echo string from server, but client always gets nothing. client.go: ========
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。golang與sqlserver的串連,網上有很多的栗子首先就是需要github下載“odbc/driver” 的驅動包,放到%Gopath的src下面代碼就不上傳了 網上一大片記錄下編譯啟動並執行時候報錯exec: “gcc”: executable file not found in
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。本例使用golang實現詞頻統計。步驟:(1)從檔案中讀取一篇文章。(2)統計詞頻,按單詞出現的頻率從大到小進行排序。(3)寫入到檔案中。註:任何非英文字母的符號均認為是單詞分隔字元(即等同於空格)。效率:使用本程式統計一篇150W單詞的文章,大約需要70ms.1.核心代碼:package wordtestimport ("bytes""fmt""io/ioutil""os&
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 最近寫了一個chrome的websocket extension, server端用的是Java的Netty架構, 後來發現golang 實現websocket 非常簡單,高效, 下面是例子, 簡單實現了使用者登入,廣播,相當於聊天室!package mainimport ("code.google.com/p/go.net/websocket""html/template""log&
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。內建函數 make 用來為 slice,map 或 chan 類型分配記憶體和初始化一個對象(注意:只能用在這三種類型上),跟 new 類似,第一個參數也是一個類型而不是一個值,跟 new 不同的是,make 傳回型別的引用而不是指標,而傳回值也依賴於具體傳入的類型make()函數在golang的代碼如下:func make(t Type,size IntegerType)
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。實現邏輯1、Golang 版本 1.32、實現原理:1、主進程建立TCP監聽服務,並且初始化一個變數 talkChan := make(map[int]chan string)2、當主進程ACCEPT串連請求後,利用go 啟動一個協程A去維持和用戶端的串連,把taokChan帶入到協程裡3、和用戶端建立串連的協程A,發送訊息給用戶端,使其發送自己的使用者資訊。4、協程A在收到用戶端發送的使用者資訊後,建立一個此使用者對應的管道
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。運用golang進行開發也有一段時間了,將自己在開發中遇到的問題在此匯總,以備其他同學參考。編程誤區包括明顯和不明顯的,這裡就不區分了,各位請自己斟酌。1、使用for range遍曆slice/array的問題誤區代碼如下: for key, data := range codeCacheAll.CodeList { if _, ok :=
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。在編譯golang程式的時候,出現如下錯誤:cannot create <nil>/go.o: No such file or directorymake: *** [build/mds] Error 2錯誤原因go build的時候會建立臨時檔案,猜測與臨時目錄相關的問題,查看了下原始碼[src/cmd/ldlib.c 652-675]static voidhostlinksetup(void){char
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。結論:GoLang裡對slice一定要謹慎使用append操作。cap未變化時,slice是對數組的引用,並且append會修改被引用數組的值。append操作導致cap變化後,會複製被引用的數組,然後切斷參考關聯性。代碼和注釋如下:package mainimport ("fmt")func main() {array := []int{10, 11, 12, 13, 14}slice := array[0:4]
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。初學golang,寫個快速排序練練手,無需額外編寫partition函數,直接使用一個函數遞迴實現快排。gopackage mainimport "fmt"func quickSort(arr []int, start, end int) { if start < end { i, j := start, end key := arr[(start+end)/2]