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
這是一個建立於
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
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 最近寫了一個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
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。註:本文對於新版本的golang並不使用,go1以後go的效能已經有了比較好的提升,具體測試見: http://www.cnblogs.com/QLeelulu/archive/2012/08/12/2635261.html 聽說Go是很不錯的語言,瞭解了一下,一些特性確實很不錯。順便測試了一下http與node.js的效能對比。go的代碼:(註:是用8g, 8l編譯的)node.js的代碼: ab測試結果:==** GO **=
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
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。new() 這是一個用來分配記憶體的內建函數,它的第一個參數是一個類型,不是一個值,它的傳回值是一個指向新分配的 t 類型的零值的指標。在golang的代碼定義如下:func new(t Type) *Type strut{} 直接使用struct{} 來初始化strut時,返回的是一個struct類型的值,而不是指標兩者是不一樣的兩者對比代碼如下:type Student struct{ id int name
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。GOlang的安裝方式有多種,今天新一[www.9696e.com]使用的是自己標準安裝方法。先到GO的官方下載地址下載自己相對應的安裝包 GO下載地址:url新一下載了(go1.1.1.linux-386.tar.gz)安裝包,下載完成後解壓到/usr/local/目錄中tar xzvf
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。實現一個無向圖儲存使用鄰接矩陣的方式實現,實現語言Golang。什麼是鄰接矩陣儲存方式 ? 鄰接矩陣儲存通過一個一維數組,以及一個二維數組完成圖的構建。一維數組用於儲存圖中的每一個頂點,二維數組用於儲存圖中邊或弧的資訊。是文章後面將要使用鄰接矩陣儲存方式實現的圖頂點數組為{'A', 'B', 'C', 'D'}邊數組(二維數組)是個矩陣形式 // A
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。channel是訊息傳遞的機制,用於多線程環境下lock free synchronization.它同時具備2個特性:1. 訊息傳遞2. 同步golang裡的channel的效能,可以參考前一篇:http://blog.sina.com.cn/s/blog_630c58cb01016xur.html此外,內建的runtime package裡已經提供了benchmark代碼,可以運行下面的命令查看其效能:go test -v -
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。代碼如下:</pre><pre>package mainimport ("bufio""fmt""net""os""time")const (Head = 4)var (ClientMap map[int]net.Conn = make(map[int]net.Conn))func main() {fmt.Println(os.
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。今天在windows下面go get一個github上的第三方庫時出現異常(也是第一次在windows下面使用go get)如下:>go get github.com/seefan/gossdb出現如下錯誤:go: missing Git command. See http://golang.org/s/gogetcmdpackage github.com/seefan/gossdb: exec: "git"
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。在go內建的timer實現中,採用的是通常的最小堆的方式,具體可以參見這裡。最小堆能夠提供很好的定時精度,但是,在實際情況中,我們並不需要這樣高精度的定時器,譬如對於一個串連,如果它在2分鐘以內沒有資料互動,我們就將其刪除,2分鐘並不需要那麼精確,多幾秒少幾秒都無所謂的。以前我們單獨實現了一個timingwheel,採用的是channel
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。golang 擷取當前路徑和上一級父路徑(目錄)package mainimport ("fmt""log""os""path/filepath""strings")func substr(s string, pos, length int) string {runes := []rune(s)l := pos + lengthif l >
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。學了一段golang,覺得應該實踐一下,寫了這個猜拳小遊戲,順帶著學習下go testing。主程式源碼:package mainimport ("bufio" // 輸入輸出"fmt""math""math/rand""os""strconv""time")//rock, paper, scissorsconst
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。最近由於某某漏洞原因,2000萬開房資料被曝光,資料是csv格式,開啟慢的要死,於是想把這2000w的開房資料匯入mysql,然後用go寫個簡單的查詢工具。悲劇開始了:第一步,下載 mysql模組,go get github.com/go-sql-driver/mysql,第二步,寫個小例子測試下package mainimport ("database/sql"
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 golang pprof 使用2013-11-16
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。package mainimport "fmt"func main() { fName := "clientupdateVersion" pName := "version" otherParameters := [] string {} printFuncHeader(fName, pName)
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]
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。本文轉自chen yuwen的部落格:http://my.oschina.net/yuwenc/blog/300592example1func f() (result int) { defer func() { result++ }() return 0}example2func f() (r int) { t := 5 defer func() { t =