Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。參考了幾份資料。未查閱源碼,故不是非常肯定。總結幾點: new會分配結構空間,並初始化為清空為零,不進一步初始化 new之後需要一個指標來指向這個結構 make會分配結構空間及其附屬空間,並完成其間的指標初始化 make返回這個結構空間,不另外分配一個指標例子new: var p *[]int = new([]int) 或 p := new([]int)
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 因為工作的需要,接觸了websocket,開始的一些很簡單的代碼,都不知道該怎樣運行起來,所以,總是有一層神秘感,卻沒有太多的興趣去研究它。不過,還是免不了要瞭解一些才不至於對於後續的工作有影響。從塌下心來學習,到最後完成編碼測試,不超過一周,遇到了很多問題,萬幸,通過自己的思考和師傅們幫忙都解決了。
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。例子package mainimport ("github.com/lxn/win""strconv""syscall")func _TEXT(_str string) *uint16 {return syscall.StringToUTF16Ptr(_str)}func _toString(_n int32) string {return strconv.Itoa(int(_n))
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。項目地址:https://code.google.com/p/weed-fs/weed-fs是一個簡單且高效能的分布式儲存系統, 它有兩個目標:1、儲存海量檔案 2、快速存取所存的檔案weed-fs選擇了 key~file 映射的方式實現檔案定址, 而不是POSIX檔案系統已有的機制, 這有點類似於nosql系統, 你可以稱之為“NoFS”weed-fs的實現機制是管理volumes伺服器, 而不是在一個中心階段管理所有的元檔案,
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。關於DNS協議的具體內容可以查看RFC1035,如果英語不太好我推薦下面這個人的譯文:http://blog.csdn.net/tigerjibo/article/details/6827736 翻譯的足夠詳盡了。那麼來看下Go的實現:package mainimport ("bytes""encoding/binary""fmt""net""strings&
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。檔案test.h如下#ifndef _TEST_H#define _TEST_H#ifdef __cplusplusextern "C" {#endifextern void myTest();#ifdef __cplusplus}#endif#endif檔案test.cc如下#include "_cgo_export.h"extern "C" {void myTest()
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。以下是讀取檔案內容package mainimport ( "bufio" "fmt" "io" "os" "strings")func main() { fh, ferr := os.Open("d:\\n.txt") if ferr != nil { fmt.Printf(
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。slice介紹
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。gif包實現了gif圖片的解碼及編碼func Decode(r io.Reader) (image.Image, error) //Decode從r中讀取一個GIF映像,然後返回的image.Image是第一個嵌入的圖。func DecodeConfig(r io.Reader) (image.Config, error)
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。如果你運行隨機數rand.Intn(n)這個函數,會發現每次產生的隨機數都是一樣的。比如:i := 0for i<10 { i++ fmt.Println(time.Now(),math.Pi,rand.Intn(3))}這段代碼分別運行兩次,產生的序列是一樣的。為了產生“真正”的隨機數,可以用時間作為基數。用下面的方法。package main import ( "fmt"
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。出現這個問題的原因在於,資料庫欄位資訊有null值比如建表的時候有欄位使用了default null,那麼對該條資料填充內容的時候,如果此欄位沒有值,為空白,那麼讀取表的時候,就會出現(此欄位類型為字串)sql: Scan error on column index 7: unsupported driver -> Scan pair: <nil> -> *string解決辦法很簡單:1
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。go test是go語言內建的測試載入器,其中包含的是兩類,單元測試和效能測試通過go help test可以看到go test的使用說明:格式形如:go test [-c] [-i] [build flags] [packages] [flags for test binary]參數解讀:-c : 編譯go test成為可執行檔二進位檔案,但是不運行測試。-i : 安裝測試包依賴的package,但是不運行測試。關於build
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。github:https://github.com/ZhangzheBJUT/blog/blob/master/closure.md 一 函數式編程概論在過去近十年時間裡,物件導向編程大行其道,以至於在大學的教育裡,老師也只會教給我們兩種編程模型,面向過程和物件導向。孰不知,在物件導向思想產生之前,函數式編程已經有了數十年的曆史。就讓我們回顧這個古老又現代的編程模型,看看究竟是什麼魔力將這個概念在21世紀的今天再次拉入我們的視野。
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。package mainimport ("code.google.com/p/go.net/websocket""fmt""log""net/http""html/template")func Echo(ws *websocket.Conn){var err errorfor{fmt.Println("start")var reply
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。以我自己的項目為例,項目的目錄結構是這樣的:1、我有兩個項目,一個項目做為基礎項目,裡面的方法大都具有通用性。2、還有一個正在開發的項目,這個項目需要調用基礎項目裡的很多函數。現在基礎項目裡有一個包含所有對資料庫進行操作的函數的檔案,名叫servicebase.go,包名:db代碼如下:packaeg dbtypeServiceBasestruct{ DBE
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。package mainimport ("fmt""html/template""net/http""os")type Person struct {Name stringAge intEmails []stringCompany stringRole string}type OnlineUser struct {User
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 RESTful API 這玩意不用多說了,用Go做了個很簡單的例子: 服務端在被調用時返回JSON, 用戶端解析得到相關JSON資訊.服務端源碼:package main//簡單的JSON Restful API示範(服務端)//author: Xiong Chuan Liang//date: 2015-2-28import
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。1、整形到字串: var i int = 1var s strings = strconv.Itoa(i) 或者 s = FormatInt(int64(i), 10)2、字串到整形 var s string = "1"var i inti, err = strconv.Atoi(s) 或者 i, err = ParseInt(s, 10, 0)3、字串到float(32 / 64) var s
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。package mainimport ( "fmt" "math/rand" "time" "bytes")func main() { fmt.Println(randomString(10) )}func randomString (l int ) string { var result
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。在編寫 golang 程式的過程中,channel 會經常使用。本文對 channel 的使用的確很特別,同時也非常實用。原文在此:http://dave.cheney.net/2013/04/30/curious-channels————翻譯分隔線————絕妙的 channel在 Go 程式設計語言中,channel 是一個閃耀的特性。它提供了一種強大的、在不使用鎖或臨界區的情況下,從某個 goroutine 向其他