Time of Update: 2015-06-18
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。本文主要介紹go Web開發中操作redis。Redigo是go串連Redis的擴充包,用此包時需先執行:go get github.com/garyburd/redigo/redis安裝完後,在檔案中匯入redigo即可。串連redis的範例如下:import ( "fmt" // 匯入redigo擴充包 "github.com/garyburd/redigo/redis")//
Time of Update: 2015-06-18
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。來自《the way to go》The compiler flags are:C:\Users\ivo>8ggc: usage: 8g [flags] file.go...flags: -I DIR search for packages in DIR -d print declarations -e no limit on number of errors printed -f print stack
Time of Update: 2015-06-18
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。目錄包與可見度包基本結構別名可見度規則摘要 匯入多個包,包的別名,可見度包與可見度包基本結構包的基本結構如下//程式啟動並執行入口是包 `main`。package main//匯入包 "fmt" 和 "math/rand"import ( "fmt" "math/rand")//或import std "fmt"
Time of Update: 2015-06-18
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。廢話不說。上代碼:Publisher.go:package mainimport ( "container/list")type Handler interface {//這裡主要參考了Go裡HTTP包的實現 Serve(int)}type HandlerFunc func(args int)func (f HandlerFunc) Serve(args int) {//是不是很熟悉的代碼? f(
Time of Update: 2015-06-18
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。str := "hello世界"1. sli := []rune(str) []rune 是go內建的函數,會將字串按utf8編碼轉換為{h,e,l,l,o,世,界}對應的數字{104,101,108,108,111,19990,30028}2. byt := []byte(str) []byte 是go內建函數,會將str轉換為byte切片{104,101,108,108,111,228,184,
Time of Update: 2015-06-18
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。針對於預設路由動態資源通過HandleFunc來註冊靜態資源通過Handle來註冊源碼如下// Handle registers the handler for the given pattern// in the DefaultServeMux.// The documentation for ServeMux explains how patterns are matched.func Handle(pattern
Time of Update: 2015-06-18
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。通過 go help testflag 可以看出,可以使用 test.run 加正在運算式來指定要測試的用例。如有以下用例在包 foo/test 中:func TestFoo(t *testing.T){}func TestFoo1(t *testing.T){}func TestAbc(t *testing.T){}go test -v foo/test 將測試所有的用例 (-v 表示輸出詳細資料,無論成功失敗)go test
Time of Update: 2015-06-18
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。go 中直接利用hset向redis存入資料效率較低,當要存入的資料已知時,可以利用hmset 來替換hset進行儲存。var args []interface{}{"myhash"}for key,value := range fvs { args = append(args, key, value)}_, err := conn.Do("HMSET",
Time of Update: 2015-06-18
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。測試環境:ubuntu 14.04 之kylin 版vim本身不帶golang的文法高亮解決方案:在 /usr/share/vim/vim74/ 中有這麼幾個檔案夾:syntax, ftplugin, indent, compiler等,我們查看syntax可以看到有gcc.vim等其他文法檔案,但是沒有go.vim, 好在我們可以從源碼下載http://www.golangtc.com/download 下載 go1.3.3
Time of Update: 2015-06-18
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。Go編程——變數、函數匯出與首字母大寫標識符可被 匯出 以允許從另一個包訪問。同時符合以下條件即為已匯出標識1、標識符名的第一個字元為Unicode大寫字母(Unicode類別“Lu”);2、該標識符在包塊中已聲明或為欄位名或方法名。以程式匯入gotest/even包為例package mainimport ( "even" "fmt")func main() { i:=even.
Time of Update: 2015-06-18
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。基於go+protobuf實現的多種持久化方案的mq架構:kiteqgitlab上發現一個比較好的開源項目,特此介紹:簡介* 基於zk維護髮送方、訂閱者、broker訂閱發送關係、支援水平、垂直方面的擴充* 基於與topic以及第二級messageType訂閱訊息* 基於mysql、檔案儲存體方式多重持久層訊息儲存* 保證可靠非同步投遞* 支援兩階段交易認可分散式交易工程結構kiteq/├── README.md├──
Time of Update: 2015-06-18
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。服務端用go:(go 1.3)搭建一個tcp伺服器,用戶端用Delphi。通過socket與go進行通訊:服務端代碼:package mainimport ("fmt""net""time""strings""net/http")func main() {service := ":1200"tcpAddr, err :=
Time of Update: 2015-06-18
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。1:學習練手用的 2:我也是看到http://www.oschina.net/code/snippet_2362573_48180這篇文章後發現妹子圖這個網站結構比較簡單,實現起來easy 3:代碼還有很多最佳化的地方,怕老闆看見只能回家搞了 4:歡迎指正直接上代碼package mainimport ("bytes""fmt""io/ioutil""net/http"
Time of Update: 2015-06-18
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。go build -gcflags "-N -l" test(gdb) source /usr/local/go/src/pkg/runtime/runtime-gdb.pyLoading Go Runtime support.(gdb) r -f etc/test.conf(gdb) info goroutines 1 waiting runtime.park* 2 syscall
Time of Update: 2015-06-18
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。環境變數配置:vi /etc/profile 添加export GOROOT=$HOME/goexport GOBIN=$GOROOT/binexport GOARCH=armexport GOOS=linux為了確保相關檔案在檔案系統的任何地方都能被調用,你還需要添加以下內容export PATH=$GOROOT/bin:$PATH在開發 Go 項目時,你還需要一個環境變數來儲存你的工作目錄export
Time of Update: 2015-06-18
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。1)建立運行環境版本:Go 1.3 beta 1下載地址:https://code.google.com/p/go/wiki/Downloads選擇自己作業系統的版本,建議下載安裝版本,不推薦ZIP,按預設步驟安裝,這樣程式會協助我們添加環境變數。2)編寫第一個程式 hello.gopackage main import "fmt" func main() {
Time of Update: 2015-06-18
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。package mainimport ("encoding/xml""fmt""mahonia""os""strconv""text/template")type Attribute struct {Name stringValue string}type Token struct {Name
Time of Update: 2015-06-18
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。go中可以拋出一個panic的異常,然後在defer中通過recover捕獲這個異常,然後正常處理在一個主進程,多個go程處理邏輯的結構中,這個很重要,如果不用recover捕獲panic異常,會導致整個進程出錯中斷package mainimport "fmt"func main() {defer func() { //必須要先聲明defer,否則不能捕獲到panic異常fmt.Println("
Time of Update: 2015-06-18
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。package mainimport ("fmt""net""os")func checkSum(msg []byte) uint16 {sum := 0len := len(msg)for i := 0; i < len-1; i += 2 {sum += int(msg[i])*256 + int(msg[i+1])}if len%2 == 1 {sum +=
Time of Update: 2015-06-18
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。package mainimport ("bytes""expvar""flag""fmt""io""log""net/http""os""os/exec""strconv""sync")// hello world, the web servervar