Time of Update: 2016-08-22
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。Introduce這是來自於go by example的例子,花了幾天的時間寫完了這些例子,感覺對我的協助很大,對於初學者來說,我的建議還是先找本go的書從頭到尾看一下,然後再來看這些例子,每個例子都手敲一遍,對你的協助還是很大的。在敲這些例子的過程中,有一些疑問,也有一些知識的擴充,因此總結了本文。time和channelgolang的time
Time of Update: 2016-08-22
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。定義模板就是將一組文本嵌入另一組文本裡傳入string--最簡單的替換package mainimport ( "os" "text/template")func main() { name := "China" tmpl, err := template.New("test").Parse("hello, {{.}}") //
Time of Update: 2016-08-22
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。package mainimport ("flag""fmt""io""net""os""strings""sync")var lock sync.Mutexvar trueList []stringvar ip stringvar list stringfunc main() {flag.StringVar(&
Time of Update: 2016-08-22
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。這裡我們分析預設的Handler–DefaultServeMux 在所有介紹之前,我們先給出兩個類:type ServeMux struct { mu sync.RWMutex m map[string]muxEntry hosts bool // whether any patterns contain hostnames}type muxEntry struct { explicit
Time of Update: 2016-08-22
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。定義模板就是將一組文本嵌入另一組文本裡傳入string--最簡單的替換package mainimport ( "os" "text/template")func main() { name := "China" tmpl, err := template.New("test").Parse("hello, {{.}}") //
Time of Update: 2016-08-22
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。這裡我們分析預設的Handler–DefaultServeMux 在所有介紹之前,我們先給出兩個類:type ServeMux struct { mu sync.RWMutex m map[string]muxEntry hosts bool // whether any patterns contain hostnames}type muxEntry struct { explicit
Time of Update: 2016-08-22
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。main// main project main.gopackage mainimport ("fmt""html/template""log""net/http""strings""session"_"memory""time")func sayHelloName(w
Time of Update: 2016-08-22
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。sudo apt-get updatesudo apt-get upgradesudo adduser git //建立使用者 密碼 *******su git//切換到git使用者cd ~ //進入使用者git根目錄 sudo apt-get install git //安裝gitgit --version //檢查git是否安裝成功 sudo apt-get install mysql-server
Time of Update: 2016-08-22
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。一、golang的安裝和環境變數的設定1、golang安裝包下載和安裝到golang官網下載最新版的安裝包go1.6.3.windows-amd64.msi,下載之後直接運行安裝,安裝路徑就使用它預設的 C:\Go\ 即可,之後一路 Next 並完成安裝。2、golang環境變數設定golang需要配置GOROOT, GOPATH,Path三個環境變數。 如果第一步安裝時使用預設安裝路徑C:\Go\ , 那麼安裝程式就已經將
Time of Update: 2016-08-21
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。gofmt大部分的格式問題可以通過gofmt解決,gofmt自動格式化代碼,保證所有的go代碼與官方推薦的格式保持一致,於是所有格式有關問題,都以gofmt的結果為準。行長一行最長不超過80個字元,超過的使用換行展示,盡量保持格式優雅。 *
Time of Update: 2016-08-21
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。package mainimport "fmt"func main() { //建立對象,通過.方式進行初始化 a := person{} a.name = "wyf" a.age = 30 fmt.Println(a) //建立對象,通過類似構造的方式進行初始化 b := person{ name: "wyff",
Time of Update: 2016-08-21
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。找了很多redis庫,折騰了好久,發現他們在並發的時候都有些許的bug,有的很慢有的報錯,有的還有串連池, 個人很喜好單一串連,更快,易管理. 但是自己在實現單例的時候發現串連總是關閉,我以為是庫的原因,找了好幾個常用的庫,都不行,後來覺得可能是redis本來就不支援長串連(本來我是覺得redis肯定是長串連的),抱著些許希望,百度了redis長串連,發現redis預設是不支援長串連的,於是乎我就改了redis的配置 : tcp-
Time of Update: 2016-08-21
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。使用golang的Regex實現人民幣小寫轉大寫,代碼如下: package mainimport ("regexp""strconv""log""fmt")func ConvertNumToCny(num float64) string {strnum := strconv.FormatFloat(num*100, 'f', 0,
Time of Update: 2016-08-21
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。產生二維碼我們需要使用到github的一個庫,我們設定好GOPATH環境變數後,使用 go get github.com/boombuler/barcode 命令下載該庫,在main.go中填寫如下代碼: package mainimport ("github.com/boombuler/barcode""github.com/boombuler/barcode/qr""image"
Time of Update: 2016-08-21
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。建立一個 main.go package mainimport( "fmt" "log" "net/http")func main(){ fmt.Println("服務連接埠:8000") //控制台輸出資訊err := http.ListenAndServe(":8000", nil) //設定監聽的連接埠if err !=
Time of Update: 2016-08-20
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。在mongoDB的shell中尋找並顯示特定的索引值對的文法是:> db.logs.find({},{"log":1}){ "_id" : "3a06384a40a8e587806f194c6c80253e", "log" : "這是一個測試日誌" }{ "_id" : "36bb718040a4362b8035ebd82
Time of Update: 2016-08-20
這是一個建立於
Time of Update: 2016-08-19
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。在開發過程中經常會遇見一些問題,現把匯總和解決方案記錄一下。 1、session設定的問題 在設定session的時候,有整型,有字串類型,在串連的時候要用到: fmt.Sprintf() + 連接字串,不格式一下,直接拼接會報錯 this.SetSession("userLogin", fmt.Sprintf("%d", users.Id)+"||"+users.Username+"||"+users.Avatar)
Time of Update: 2016-08-19
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。關於延時調用函數(Deferred Function Calls)延時調用函數的文法如下:defer func_name(param-list)當一個函數調用前有關鍵字 defer 時, 那麼這個函數的執行會延遲到包含這個 defer 語句的函數即將返回前才執行. 例如:func main() { defer fmt.Println("Fourth") fmt.Println("First
Time of Update: 2016-08-19
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。聲明一個struct聲明一個 struct 的文法如下:type struct_name struct { body}例如:type Person struct { name string age uint8}關於 struct 欄位的可見度如果一個 struct 的欄位以大寫字母開頭, 則表示這個欄位是匯出的, 即可以在其他包中訪問這個欄位, 例如:type Person struct { Name