原创 對int類型進行i++自增操作時並不是原子操作,併發不安全
package main import ( "fmt" "runtime" "sync" ) func main() { runtime.GOMAXPROCS(5) var m int32 = 0 var group
原创 go-micro 本地搭建及使用consul
安裝(前提是本地已安裝protobuf和protof的go擴展) go get github.com/micro/micro go get github.com/micro/go-micro go get github.com/micro
原创 grpc調用protobuf生成的文件
記錄下protoc生成go文件後,使用grpc調用的過程 grpc安裝 go get -u -v google.golang.org/grpc server.go package main import ( "contex
原创 protobuf windows環境安裝
protocol buffers 是一種語言無關、平臺無關、可擴展的序列化結構數據的方法,它可用於(數據)通信協議、數據存儲等。總之微服務中需要使用的東西 安裝protobuf 下載protobuf https://github.co
原创 golang標準庫——image
使用golang標準庫中的 image 庫合成圖片 package main import ( "fmt" "image" "image/draw" _ "image/jpeg" "image/png" "os" ) fu
原创 golang——image庫圖片上寫字
package main import ( "github.com/golang/freetype" "image" "image/color" "image/png" "io/ioutil" "log" "os" )
原创 GinAdmin——基於golang的web管理平臺
GinAdmin 這個項目是以Gin框架爲基礎搭建的後臺管理平臺,雖然很多人都認爲go是用來開發高性能服務端項目的,但是也難免有要做web管理端的需求,總不能再使用別的語言來開發吧。所以整合出了GinAdmin項目,請大家多提意見指正! G
原创 golang學習筆記——json數據
生成json格式字符 使用結構體生成 package main import ( "encoding/json" "fmt" ) //用於json的結構體類型成員首字母必須大寫 // type Jon st
原创 golang學習筆記——定時器
Timer定時器 啓動 package main import ( "fmt" "time" ) func main() { <-time.After(2 * time.Second) fm
原创 golang學習筆記——字符串操作
字符串操作 package main import ( "fmt" "strings" ) func main() { str := "hello world" //contains 是否包含指定字
原创 golang學習筆記——文件操作
標準設備文件操作 package main import ( "os" ) func main() { os.Stdout.WriteString("hello world") //相當於fmt.Println } 磁盤文件
原创 golang學習筆記——協程
當主協程退出後子協程也會退出 package main import ( "fmt" "time" ) func main() { go func() { i := 0 for { i++
原创 golang學習筆記——Channel
Channel通道 無緩存通道 make(chan type類型) 注意:讀和寫都是阻塞執行的 package main import ( "fmt" "time" ) var ch = make(
原创 golang學習筆記——異常
自定義異常的兩種方式 package main import ( "errors" "fmt" ) func main() { //使用fmt.Errorf err1 := fmt.Errorf("
原创 golang學習筆記——select
select就是用來監聽和channel有關的IO操作,當 IO 操作發生時,觸發相應的動作 package main import ( "fmt" "time" ) func main() { ch :=