Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。(一)、自訂菜單--刪除import ("bytes""encoding/json""fmt""github.com/astaxie/beego""io/ioutil""net/http") var url_del =
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。package mainimport ( "fmt" "log" "net" "bufio" "io")func handleConnection(conn net.Conn) { br := bufio.NewReader(conn) for{ data, err :=
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。var txt = `{key1 = "\"value1\"\n" | key2 = { key3 = 10 } | key4 = {key5 = { key6 = value6}}}`var s scanner.Scanners.Init(strings.NewReader(txt))var b []byteloop: for { switch tok := s.Scan();
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。1 map簡介 map是一堆索引值對的未排序集合,類似Python中字典的概念,它的格式為map[keyType]valueType,是一個key-value的hash結構。map的讀取和設定也類似slice一樣,通過key來操作,只是slice的index只能是int類型,而map多了很多類型,可以是int,可以是string及所有完全定義了==與!=操作的類型。
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。第一步,得到json的內容contents, _ := ioutil.ReadAll(res.Body)js, js_err := simplejson.NewJson(contents)第二部,根據json的格式,選擇使用array或者map儲存資料var nodes = make(map[string]interface{})nodes, _ =
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。//本程式是為了根據cvs的內容,自動生即時效果的報文,第七列為最後值//用法: 程式名+檔案名稱package mainimport ( "encoding/csv" "flag" "fmt" "io" "log" "os" "strings")func main() {
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。原生態go對於import包無法自動添加或者刪除,對於某些使用者來說很不適應.在sublime text中利用gosublime+goimports很好的解決了這一問題.1首先確認sublime text安裝了Gosublime(安裝方法這裡不在贅述);2下載goimports: go get code.google.com/p/go.tools/cmd/goimports3配置sublime
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。go程式一般都會有很多的goroutine,panic列印了滿屏的goroutine的資訊,而且windows內建的控制台能顯示的資訊很有限,這樣就出錯的提示資訊總是會被刷掉了。以前用過console2來替代控制台,但是這個軟體不是很友好,通常顯示的資訊的格式問題比較多,而且漢字顯示問題很大。今天又仔細的研究了下發現以前網上看的的SetStdHandle代碼改動下就可以了。代碼如下,只要把var f
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。調用http.Redirect()函數後,並不會立刻進行跳轉,而是繼續順序執行函數中的所有的代碼後,再進行跳轉。但是Redirect後面的寫介面的代碼不會發送到遊覽器前端的。代碼如下:func Chat(w http.ResponseWriter, r *http.Request) {fmt.Println("Chat")r.ParseForm()withWho :=
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。直接上代碼package mainimport (l "container/list""fmt""time")var (name = "viney")func list() {names := l.New()t := time.Now()for i := 1; i <= 1000000; i++ {_ =
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。2013-12-14 wcdj本文介紹go利用管道如何進行並發計算,需要注意go的管道是雙向的,而UNIX管道是單向的。PS:
Time of Update: 2015-06-17
這是一個建立於
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。類似這個CA如果執行個體轉化成json.List會變成字串.type CA struct {List []uint8}func main() {ca := CA{[]uint8{1,2,3,4,5,6,7,8,9,0}}r, _ := json.Marshal(ca)fmt.Println(string(r))
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
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。channel– 本質上是一個 MessageQueue– 非常正統的執行體間通訊設施• sync.Mutex/RWMutex/Cond/etc– 不要把 channel 當做萬金油,該 Mutex 還是要• 誤區– 用 channel 來做互斥 ( 正常應該讓 Mutex 做 )• 比如多個 goroutine 訪問一組共用變數 • channel 的成本 – 作為訊息佇列, channel 成本原高於 Mutex– 成本在哪?
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。1.如果沒有指定content_type的話,http包會查看檔案的前512 byte,從而推測檔案類型。2.常用類型為:text/html 返回網頁格式。text/plain 返迴文本格式,也就說不會解析html。application/octet-stream 一般都是二進位格式,可用來下載。(這個有點複雜,不是很清楚) image/***audio/***video/***
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。#Tree術語:- 樹- 根- 節點- 葉子- 層次, 根節點- 深度- 樹的高度, 空樹的深度為`-1`, 根的深度為`0`, 一個節點的高度為`0`, 所有的樹葉的高度都為`0`。---##二叉樹每個節點最多有兩個孩子,空樹也是一棵二叉樹,鏈表是一種特殊的二叉樹。## 二叉排序樹(二叉搜尋樹,B樹)## 滿二叉樹## 完全二叉樹## AVL樹AVL樹本質上還是一棵二叉搜尋樹(因此讀者可以看到我後面的代碼是繼承自二叉搜尋樹的),
Time of Update: 2015-06-17
這是一個建立於
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。(pprof) top Total: 53.0 MB 29.5 55.7% 55.7% 29.5 55.7% reflect.unsafe_NewArray 20.0 37.7% 93.4% 20.0 37.7% encoding/json.(*decodeState).literalStore 2.5 4.7% 98.1% 2.5 4.7%
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。一 包的匯入文法 在寫Go代碼的時候經常用到import這個命令用來匯入包檔案,看到的方式參考如下: import( "fmt" ) 然後在代碼裡面可以通過如下的方式調用 fmt.Println("hello world")