Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。最近寫遊戲服.用的全是新貨.go語言+mongodb.嘿嘿. 關於mgo如何使用就不詳細說了.官網上寫的很清楚.這塊就說說怎麼用.首先匯入mgo庫.import ("labix.org/v2/mgo""labix.org/v2/mgo/bson")聲明DBvar DB_dbs *mgo.Database聲明Collectionvar DB_dbUserList
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。一 Go語言基本類型1 布爾型:bool長度:1位元組。取值範圍:true、false。注意事項:不可使用數字代替。2 整形:int / uint根據運算平台而異,32位作業系統32位,64位作業系統64位。3 8位整型:int8 / uint8長度1位元組。取值範圍:-128~127 / 0~255。4 位元組型:byte(uint8的別名)uint8和byte類型完全一致,就是一個別名的關係。5 16位整型:int16 /
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。承前文:Go語言中對映像進行縮放//利用Go語言上傳映像並產生縮圖func upload(w http.ResponseWriter, req *http.Request, link string) {// Upload of a new image.// Copied from Moustachio demo.f, _, err := req.FormFile("image")if err != nil
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。go語言支援的常量有字元型,字串型,布爾型和數字型。用const關鍵字來定義常量。能有var語句的地方,就能有const語句。常量運算式能以任意精度進行計算。常量是沒有類型的,除非有語句給出了,例如強制類型轉換。數字常量在上下文需要類型時候,其類型會被自動加上。比如說變數賦值或者函數調用中。本樣本中的math.Sin(n),sin函數需要一個int64類型,n會被自動轉換成int64.Plain Text code?1234567
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。Go語言具備強大的伺服器開發支援,本文示範了最基礎的伺服器開發:通過TCP協議實現用戶端與伺服器的通訊。一 服務端,為每個用戶端新開一個goroutinefunc ServerBase() {fmt.Println("Starting the server...")//create listenerlistener, err := net.Listen("tcp", "192.168.1.2
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 使用了Java、C#等許多語言好多年了,一直沒怎麼用過這些語言中的位移運算子,最近為了實現了一個小功能,才體會到這幾個運算子的用途。在介紹如何用GO語言計算CIDR位址區段之前,先介紹一下什麼是網路地址的CIDR。 CIDR全稱Classless Inter-Domain
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。迴圈:‘for’是GO的唯一迴圈結構。for迴圈的使用方法與C語言的唯一區別是沒有了‘()’,另外可以省略分號。 if:if語句的使用方法與C語言的唯一區別是沒有了‘()’。if語句可以在條件之前執行一個簡單的語句。例if v := x * n; v < lim { return
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 Go語言下與MongoDB通訊-使用mgo分類: MongoDB2013-08-28 15:52 1585人閱讀 評論(0) 收藏 舉報最近寫遊戲服.用的全是新貨.go語言+mongodb.嘿嘿. 關於mgo如何使用就不詳細說了.官網上寫的很清楚.這塊就說說怎麼用.首先匯入mgo庫.import ("labix.org/v2/mgo""labix.org/v2/mgo/bson")聲明DBvar
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 Go語言提供了byte類型,一個byte對應8個位,所以轉換一下就可以實現位元影像了。 代碼: package main//author:xcl//date:2014-1-25import ("fmt")func main() {arrInt32 := [...]uint32{5, 4, 2, 1, 3, 17, 13}var arrMax uint32 = 20bit :=
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。我們團隊使用Go來開發遊戲服務端,遊戲服務端的戰鬥邏輯避免不了各種計算,C的編程經驗告訴我們整數運算效率比浮點運算高,但是在Go語言中,這兩種資料類型的運算效率到底差多少呢?是否有必要把浮點數轉換成整數的萬分數或者千分數進行運算呢?下面通過實驗來對比。實驗代碼(github):package labs05import "testing"func Benchmark_IntAdd(b *testing.B) {
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。Go程式主要由以下幾部分組成:包聲明匯入包函數變數語句和運算式注釋以上一篇文章中的Test20150525.go為例:/* 第一行定義了程式包。必須聲明為Go程式運行在什麼包。main包是起始點來運行程式。每個包都有一個與之關聯的路徑和名稱。 */package main/* import "fmt" 是告訴編譯器去包含檔案在包fmt的預先處理命令。 */import "fmt"/* func
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。最近因為項目需要,所以寫了一個id產生器,於是當時想為了省事就用go語言來寫得了,於是花了大概半天的時間寫了300多行碼,完成之後開始測效能。一開始是在自己的虛擬機器上測的,用戶端是用php的,結果發現php在單進程環境下只能跑30個請求,這個結果其實也不意外,因為這根本就不是伺服器的問題,而是php本身的效能不行,所以壓力壓不上去。於是用pcntl_fork出多個進程來,每個進程跑一些請求,最後在主進程裡計算總的時間,結果發現1
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。求圓周率(Go語言實現) 圓周率演算法來源於萊布尼茨公式,效率很低並且精度也不夠,以下是運行結果:[ `go run demo.go` | done: 5m12.5903356s ](即一共運行了5分12秒)[3 1 4 1 5 9 2 5 5 3 5 8 9 7 9 3 2 3 8 4 6 2 8 9 3 3 8 3 2 7 9 5 0 2 8 8 1 0 7 2 1 6 9 3 9 9 3 7 5 2 0 1 1 3 3 4
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。go語言之map的使用go語言的map,和c/C++語言的功能使用差不多,但是也存在很多差別。map在go語言大並發業務開發中是經常用,例如使用者資訊的廣播等。下面看看相關使用代碼map的遍曆和刪除,添加package mainimport ( "fmt")func delete_msg(name_age map[string]int, key string) { delete(name_age,
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。go 語言源碼安裝依賴 ,gcc ,make glibc庫,等,上述工具安裝省略,另外,其原始碼更新採用的是mercurial 工具,安裝前先安裝mercureal :1.mercurial安裝使用yum install mercurial2.設定環境變數在.bash_profile中#go setexport GOROOT=/usr/local/goexport GOOS=linuxexport
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 本文只針對Ubuntu系統開發環境的搭建進行學習。 本文工作作業系統為ubuntu12.12.第一步,安裝Go工具鏈:root@tangle-VirtualBox:/home/tangle# sudo apt-get install bison ed gawk gcc libc6-dev makeReading package lists... DoneBuilding dependency tree
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。go語言作為程式設計語言中的後起之秀,在博採眾長的同時又不失個性,在注重運行效率的同時又重視開發效率,不失為一種好的開發語言。在go語言中,沒有類的概念,但是仍然可以用struct+interface來實作類別的功能,下面的這個簡單的例子示範了如何用go來類比c++中的多態的行為。package mainimport "os"import "fmt"type Human interface {
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 GO類似PHP,每行的結尾要加分號來結束,不同點在於GO對此並不強制,這一點又像javascript,另外GO的語句塊是用一對大括號來包裹的,但是go要求左大括號必須要在語句的結尾處,不能在行首出現左大括號,這是一個新的特性,至少在我接觸的編程語言中第一次遇到這種狀況.還有就是GO對大小寫敏感,這一點相信大家不會有什麽爭議.
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。這節課我們來講解數組,切片和map,或許您是從其他語言轉到GO語言這邊的,那麼在其他語言的影響下您可能會不太適應GO語言的數組,因為GO語言把數組給拆分成了array,slice和map,接下來的時間讓我們一起研究一下這三者的差異以及用法.首先我們說一下array的部份: 1.數組的長度屬於數組的一部份,我們看下邊的例子 a:=[1]int{}和b:=[2]int{}
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。楊輝三角的樣式如下: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 它的特徵是,每一行的最左邊和最右邊的元素都是1,而其它元素等於它上方“肩膀”上的兩個元素之和。使用Go語言列印楊輝三角:package