Time of Update: 2018-08-13
http://blog.csdn.net/qiurisuixiang/article/details/8732900 Email : hahayacoder@gmail.com 1 有一款叫做gocode的外掛程式能協助Go的代碼智能補全,使用它能使開發更加高效 2 下載gocode,下載地址https://github.com/nsf/gocode/
Time of Update: 2018-08-10
標籤:提示 sqlite running exec build cgo 開發 arch 安裝 在windows下使用Beego+go-sqlite3進行簡單部落格開發,
Time of Update: 2018-08-13
工欲善其事,必先利其器,學習之前我找了一些書籍和論壇,在此共用之!1學習論壇推薦 http://studygolang.com/
Time of Update: 2018-08-12
雖然智能合約(Smart Contract)這個詞現在已經很流行了,但如果你問我到底什麼是智能合約?我還真不能馬上給出準確的答案,為此,我查看了 wikipedia 上關於 Smart Contract 的詞條:A smart contract is a computer protocol intended to digitally facilitate, verify, or enforce the negotiation or performance of a contract.
Time of Update: 2018-08-11
如果你在使用像 C# 或 Java 這樣的程式設計語言後來到 go,你發現的第一件事就是沒有像 `List` 和 `Dictionary` 這樣的傳統集合類型。 這真讓我困惑了好幾個月。 我找到了一個名為 `container/list`
Time of Update: 2018-08-11
即將發布的Go 1.11將加入對go mod的支援,解決了go一直存在的依賴管理的短板。不過這篇文章並不是要介紹go module本身,而是打算說一下go團隊和社區之間的衝突——你可以從中看到go
Time of Update: 2018-08-11
Go Blog上最近發表了一篇文章,內容是Richard Hudson在ISMM 2018上面的"Getting to Go"的講座,包括keynote以及筆記,從中可以看到Go GC設計的考量,以及演化的脈絡,文章下面摘要一些內容出來。Go調度的單位是輕量級的goroutine,goroutine被調度器調度到有限的幾個線程裡執行,每個goroutine都有自己的stack,所以Go會有成千上萬個的stack作為GC的Root,在GC
Time of Update: 2018-08-11
寫了一個簡單golang產生隨機字串的方法,分享出來,產生的都是大寫的字母func init() { r = rand.New(rand.NewSource(time.Now().Unix()))}func RandString(len int) string { bytes := make([]byte, len) for i := 0; i < len; i++ { b := r.Intn(26) + 65 bytes[i] = byte(
Time of Update: 2018-08-13
編程中總會遇到各種莫名奇妙的坑,正確掌握語言使用姿勢,能夠有效避免踩坑閃著腰. go只提供了一種迴圈方式,即for迴圈,在使用時可以像c那樣使用,也可以通過for range方式遍曆容器類型如數組、切片和映射。但是在使用for range時,如果使用不當,就會出現一些問題,導致程式運行行為不如預期。情形 . 一 > for range + 閉包 代碼如下: (閉包相關可以看我前面一篇部落格)package mainimport ( "fmt"
Time of Update: 2018-08-10
初始化client,以及request竟然無法調用第二次,奇了八怪。沒怎麼深入閱讀源碼,但是知道問題出在哪了。首先代碼長這樣:resp, err := client.Do(req)resp, err := client.Do(req)本來想著過一段時間重新整理一下資料,來看看資料有什麼變化,所以就想著能複用req,但是沒想到報錯:: http: ContentLength=15 with Body length 0這是為什麼呢。深入調查了一下,先看下req長啥樣req, err =
Time of Update: 2018-08-10
預設安裝官網下載安裝包 https://golang.org/dl/。解壓tar -C /usr/local -xzf go$VERSION.$OS-$ARCH.tar.gz,解壓後路徑 /usr/local/go。其中,$VERSION表示golang的版本,如1.10.3;$OS表示系統,如:linux;$ARCH表示cpu架構,如:amd64。添加golang的命令列工具到環境邊路路徑,$PATH=$PATH:/usr/local/go。輸入go
Time of Update: 2018-08-10
本文主要為學習《Go語言標準庫》https://books.studygolang.com/The-Golang-Standard-Library-by-Example的筆記Go語言中的IO操作封裝在以下4個包中:1) io: 為IO原語(I/O primitives)提供基本的介面。2) io/ioutil: 封裝一些實用的I/O函數。3) fmt: 實現格式化I/O。4) bufio: 實現帶緩衝I/O。 1.
Time of Update: 2018-08-10
Go誕生於Google, 是由以下三位電腦領域的大師寫的Go的做著
Time of Update: 2018-08-09
有沒有好奇過redis、memcache等是怎麼實現叢集負載平衡的呢?其實他們都是通過一致性hash演算法實現節點調度的。講一致性hash演算法前,先簡述一下求餘hash演算法:hash(object)%N一個快取服務器宕機了,這樣所有映射到這台伺服器的對象都會失效,我們需要把屬於該伺服器中的緩衝移除,這時候快取服務器是 N-1 台,映射公式變成了 hash(object)%(N-1) ;由於QPS升高,我們需要添加多一台伺服器,這時候伺服器是 N+1 台,映射公式變成了
Time of Update: 2018-08-09
用命令擷取第三方包go get -u -v github.com/speps/go-hashids代碼如下:package hashidsimport ( "github.com/speps/go-hashids")//salt 鹽值const salt = "salt"//Encode 混淆func Encode(data int) string { hd := hashids.NewData() hd.Salt = salt h, _
Time of Update: 2018-08-09
Gofasion是一個方便開發過程中介面JSON資料解析的輕量級解析庫,其最大的特點在於支援鏈式調用,也就是說不必預先定義好資料的結構就可以直接擷取到目標鍵名和索引值。### 開源[https://github.com/Anderson-Lu/gofasion](https://github.com/Anderson-Lu/gofasion)### 安裝```shellgo get github.com/Anderson-Lu/fasion/gofasion```###
Time of Update: 2018-08-08
前言在前一篇“golang-區塊鏈學習01”的基礎上,增加我們區塊鏈的工作量證明。知識點1、區塊鏈ProofOfWork(工作量證明)概念,因為所有人都想產生區塊來擷取獎勵,為了公平起見,我們規定要想成功產生一個區塊必須完成指定難度的任務才行。也就是誰先完成指定難度的任務就將成功產生一個區塊。先預留個彩蛋,結合執行個體的工作量證明將在文末總結。golang實現簡單的工作量證明1、定義一個工作量難度。比如要求生產的區塊的hash值前面五位必須為0。即hash類似:00000xxxxxxxxxxx的
Time of Update: 2018-08-08
正式的文法指定什麼是在 Go 語言(或者其他的語言)中依據文法構成有效程式。```Block = "{" StatementList "}" .StatementList = { Statement ";" } .```以上定義取自 Go 規範。它使用[擴充的 Backus-Naur](https://en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_form)
Time of Update: 2018-08-08
4.7.1 首碼和尾碼HasPrefix 判斷字串 s 是否以 prefix 開頭:strings.HasPrefix(s, prefix string) boolHasSuffix 判斷字串 s 是否以 suffix 結尾:strings.HasSuffix(s, suffix string) boolpackage mainimport ("fmt""strings")func main() {var str string = "This is an
Time of Update: 2018-08-08
token驗證是一種web常用的身分識別驗證手段,在這裡不討論它的具體實現我需要在golang裡實現token驗證,Web架構是Gin(當然這與架構沒有關係)步驟如下從request擷取tokenstring將tokenstring轉化為未解密的token對象將未解密的token對象解密得到解密後的token對象從解密後的token對象裡取參數一、擷取解密後的token該函數根據request,獲得tokenstring,並轉為未解密token對象,解密後得到解密token對象import