Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。<strong style="margin: 0px; padding: 0px; border: 0px; font-size: 15px; font-weight: bold; color: rgb(34, 34, 34); font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-style: normal;
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。package mainimport ( "encoding/json" "fmt" "github.com/goinggo/mapstructure")//把請求包定義成一個結構體type Requestbody struct { req string}//以指標的方式傳入,但在使用時卻可以不用關心// result
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。models.go============================package mainimport ( "github.com/astaxie/beego/orm")type User struct { Id int Name string Profile *Profile `orm:"rel(one)"` // OneToOne
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。http://www.csdn.net/article/2012-07-05/2807113-less-is-exponentially-more摘要:導讀:這篇文章是Google首席工程師、Go語言之父Rob Pike自己整理的6月21日在舊金山給Go
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。網上一個substring的方法:func SubString(str string,begin,length int) (substr string) {// 將字串的轉換成[]runers := []rune(str)lth := len(rs)// 簡單的越界判斷if begin < 0 {begin = 0}if begin >= lth {begin = lth}end := begin +
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。在上篇用純go在本機類比了下分布式隊列的東西。這裡補上Redis隊列部份。用Redis做隊列有下面三個問題需解決: 1. 隊列構建 使用Redis的RPUSH/LPOP來解決 2. 參數傳遞/解析 用戶端將JOSN參數存入Redis,Server端取出後解析還原。 3. 串連池 redigo支援Redis串連池下面代碼就是具體解決實現://Redis做背景工作隊列//author: Xiong Chuan
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
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。我們團隊使用Go來開發遊戲服務端,遊戲服務端的戰鬥邏輯避免不了各種計算,C的編程經驗告訴我們整數運算效率比浮點運算高,但是在Go語言中,這兩種資料類型的運算效率到底差多少呢?是否有必要把浮點數轉換成整數的萬分數或者千分數進行運算呢?下面通過實驗來對比。實驗代碼(github):package labs05import "testing"func Benchmark_IntAdd(b *testing.B) {
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。學Go語言一周了,部門老大又讓做其它語言,隨便寫個Go的檔案傳輸例子,主要是用了net包,裡邊還有各種不規範,請包涵。服務端和用戶端都寫在main()裡了,TCP監聽ip和連接埠,接收檔案儲存路徑什麼都可以根據自己的情況改動,詳見以下代碼:package mainimport ( "bufio" "code.google.com/p/mahonia" "fmt"
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。Go語言支援匿名函數,即函數可以像普通變數一樣被傳遞或使用。使用方法如下a := func(input1 int) int{ return input1 += 1}()b :=a(2)GO語言的匿名函數就是閉包,以下是《GO語言編程》中對閉包的解釋
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
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。一個簡單的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的源碼。整個庫的完成體現io Writer Reader的一致性。從網路,檔案,到記憶體都抽象出Writer Reader。encoding bufio net包完美體現。電腦程式就是io。讀入資料。輸出資料。函數 資料從參數中讀入。傳回值中返回資料。一切皆檔案的unix思想。
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。Golang支援閉包1 什麼是閉包閉包就是一個匿名函數和一個外部變數(成員變數)組成的一個整體 通俗的講就是一個匿名函數中引用了其外部函數內的一個變數而這個變數和這個匿名函數的組合就叫閉包如下代碼所示 func closure1() func() int{i :=0return func() int{i++ //該匿名函數引用了closure1函數中的i變數故該匿名函數與i變數形成閉包return
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。ICMP是用來對網路狀況進行反饋的協議,可以用來偵測網路狀態或檢測網路錯誤。限於當前Golang在網路編程方面的代碼稀缺,資料甚少,所以分享一個用Golang來構造ICMP資料包並發送ping程式的echo訊息的執行個體。RFC792定義的echo資料包結構: 0 1 2 3 0 1 2 3 4 5 6 7 8
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。go 介面靜態與動態校正go 的介面是duck模型,類型不需要顯式的聲明實現某個介面,只需實現該介面的所有methods,就認為該類型實現該介面。在實際中,大部分介面轉換是靜態,發生在編譯時間刻;go
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 本文的是一篇入門文章,通過一個簡單的例子介紹Golang的Web編程主要用到的技術。 文章結構包括:Client-Get 請求 Client-Post 請求Server 處理 Get 和 Post 資料 在資料的封裝中,我們部分採用了json,因而本文也涉及到Golang中json的編碼和解碼。一、Client-Getpackage mainimport ( &
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 本文的是一篇入門文章,通過一個簡單的例子介紹Golang的Web編程主要用到的技術。 文章結構包括:Client-Get 請求 Client-Post 請求 Server 處理 Get 和 Post 資料 在資料的封裝中,我們部分採用了json,因而本文也涉及到Golang中json的編碼和解碼。一、Client-Getpackage mainimport ( "fmt" "net/url
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。說說我對golang的interface賦值的理解。先說golang中類型方法定義。 如 type bird struct { id int}func (b bird) fly() { fmt.Println("fly")}func (b *bird) eat() { b.id++} 中bird類型有兩個方法,fly和eat。兩個方法是有區別的,fly由(b bird)綁定,
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。// Copyright 2013 <chaishushan#gmail.com>. All rights reserved.// Use of this source code is governed by a BSD-style// license that can be found in the LICENSE file.#ifndef _DEFER_H_#define _DEFER_H_#include