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
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。使用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
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。在Google官方維護的code.google.com\p\go.net\websocket包中的server.go檔案中,曾經有這麼一段描述:// Handler is a simple interface to a WebSocket browser client.// It checks if Origin header is valid URL by default.// You might want to verify
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實現的私聊,由伺服器端決定兩兩匹配 伺服器端 chat_server.gopackage mainimport ( "fmt" "io" "log" "net")const listenAddr = "localhost:4000"func main() { l, err := net.Listen(
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搭建一個網站只是需要簡單的幾句就可以了package mainimport ("fmt""log""net/http""strings")func sayhelloName(w http.ResponseWriter, r *http.Request) {r.ParseForm()
Time of Update: 2015-06-17
這是一個建立於
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。本文是上一篇文章 Golang+Android(使用HttpURLConnection)實現檔案上傳 的升級版,實現多檔案上傳功能,並且附帶http請求參數。用戶端代碼: /** * 使用HttpURLConnection通過POST方式提交請求,並上傳檔案。 * * @param actionUrl 訪問的url * @param textParams
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。直接上代碼:1. 第一種情況, 如果沒有select{}, main 主線程不會等待coroutine運行,導致coroutine得不到機會運行。You are requesting eventual scheduling (using the two go statements) of two goroutines and then you exit main without giving the scheduler a
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。golang中sync包實現了兩種鎖Mutex (互斥鎖)和RWMutex(讀寫鎖),其中RWMutex是基於Mutex實現的,唯讀鎖的實現使用類似引用計數器的功能.type Mutex func (m *Mutex) Lock() func (m *Mutex) Unlock()type RWMutex func (rw *RWMutex) Lock() func (rw *RWMutex) RLock(