Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。Go語言中的內建函數new和make是兩個用於記憶體配置的原語(allocation primitives)。對於初學者,這兩者的區別也挺容易讓人迷糊的。簡單的說,new只分配記憶體,make用於slice,map,和channel的初始化。 1.
Time of Update: 2014-10-04
這是一個建立於
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。////////////////////////////////////////////////////////////////////////////////////////////////////// filename : main.go// author : LiuDongguo// contact : jealdean@outlook.com// created : 21:39 16 Sep 2014///////
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 Functions Multiple return values 返回多個值 One of Go's unusual features is that functions and methods can return multiple values. This form can be used to improve on a couple of clumsy idioms in C programs:
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
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。Go語言通過testing包提供自動化測試功能。包內測試只要運行命令 go test,就能自動運行符合規則的測試函數。Go語言測試約定規則1.一般測試func TestXxx(*testing.T)測試行必須Test開頭,Xxx為字串,第一個X必須大寫的[A-Z]的字幕為了測試方法和被測試方法的可讀性,一般Xxx為被測試方法的函數名。2.效能測試func
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
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。一、學習想法 用兩天的時間學習golang,但這次是先不看書的,直接寫代碼先。 我們常習慣邊看書邊學習寫代碼,但發現過程是比較緩慢的,所以我就先想寫代碼,邊寫邊查。就我們所知,web
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。sudo taskset -c 1 ./wrk -c1 -t1 -d30 http://localhost/hellowrk+nginx(helloworld module) sudo taskset -c 0 sbin/nginx nginx: cpu:76% wrk: cpu:70% Running 30s test @ http://localhost/hello 1 threads
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。找了很長時間go的gui庫,試了gtk,準備試qt的時候發現了這個qml庫,試了下很好用。##準備工作**1、Go 1.2RC1**go的版本應該不能低於這個,我是在1.2RC發布當天升級後發現的qml,並測試的。**2、qml**項目首頁 https://github.com/niemeyer/qml 目前還是alpha版。項目首頁裡面有各個平台的安裝方法 裝好後會順帶把qtcreator的ubuntu sdk
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。先看一段程式 package mainimport ( "fmt") func main() { a := []int{1, 2, 3} for _, i := range a { fmt.Println(i) defer p(i) } } func p(i int)
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 這裡,我並不打算引起語言爭論的口水仗,我並不是什麼大牛,對語言的造詣也不深,只是想通過自己實際的經曆,來說說為什麼我在項目中選擇go。 其他語言的經曆 C++
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。由於某個需求,需要如題的轉換,廢話不多說,直接貼代碼了,其實挺醜了,備用了func (this *Server) socketParserHandler(client *genTcpServer.Client, fullData []byte) { fmt.Println("original data is", client) strPointerHex := fmt.Sprintf("%p
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。nohup命令 在 linux 下面部署,我們可以利用 nohup 命令,把應用部署在後端,如下所示: nohup ./yourapp & 這樣你的應用就跑在了 Linux 系統的守護進程 nohup命令:如果你正在運行一個進程,而且你覺得在退出帳戶時該進程還不會結束,那麼可以使用nohup命令。該命令可以在你退出帳戶/關閉終端之後繼續運行相應的進程。nohup就是不掛起的意思( no hang up)。
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 今天遇到個介面需要處理一個json的map類型的數組,開始想法是用simple—json裡的Array讀取數組,然後遍曆數組取出每個map,然後讀取對應的值,在進行後續操作,貌似很簡單的工作,卻遇到了一個陷阱。Json格式類似下邊:{"code":0,"request_id": xxxx,"code_msg":"","body":[{
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 Initialization Although it doesn't look superficially very different from initialization in C or C++, initialization in Go is more powerful. Complex structures can be built during initialization and the
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。golang 中的 類型判斷類似於javascript中typeof 和 java中 instanceof比如 var a interface{}newA,ok:=a.(string)如果ok 是 true 則說明 變數a 是字串類型,而newA就是string類型的變數,a的實際值a.(type) 返回的是 a的 類型, 注意他返回的不是一個 字串表示 string int 這樣表示a的類型a.(type)是和switch
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。原文同步至:http://www.waylau.com/golang-game-guess-numbe/隨機產生一個數字,輸入一個數字看是否匹對,匹配則結速,反之提示是大了還是小了,代碼如下:package mainimport ("bufio""fmt""math/rand""os""strconv""time")var