原创 go mod問題解決

問題一 go list -m: can't compute 'all' using the vendor directory (Use -mod=mod or -mod=readonly to bypass.) 解決方法: 目

原创 深入解析gin框架路由設計

一、概述 很多人都熟悉gin框架,但是很多人並沒有更深層次的挖掘gin的路由設計。web框架的核心是什麼?一個就是路由,所以想更深的瞭解這個框架,首先就要去深入瞭解gin框架的路由。 二、源碼 2.1 Engine結構體 typ

原创 golang庫之copier

github地址 https://github.com/jinzhu/copier 簡介 調用同名方法爲字段賦值; 以源對象字段爲參數調用目標對象的方法,從而爲目標對象賦值(當然也可以做其它的任何事情); 將切片賦值給切片(可以

原创 Golang學習包之【io/ioutil】

概況 Package ioutil 實現了一些 I/O 實用程序功能。 索引 // Discard 是一個 io.Writer 接口,調用它的 Write 方法將不做任何事情 // 並且始終成功返回。 var Discard io

原创 golang之crc32算法解密字符串

根據實驗我們知道crc32算法比md5算法快4倍左右,所以研究了下golang的crc32的解密。 package main import ( "fmt" "hash/crc32" ) func main() { in

原创 golang之float類型保留小數點後2位

value, _ = strconv.ParseFloat(fmt.Sprintf("%.2f", 0.2223), 64) fmt.print(value)

原创 golang相關proto協議

protoc -I app/api/proto app/api/proto/*.proto --go_out=plugins=grpc:app/api/proto/

原创 leetcode算法題解法

一、動態規劃

原创 go語言http請求(一)

我們在開發的過程中多多少少會要跟其他服務做交互,很多都是http請求,但是在go語言裏面怎麼樣請求http請求,今天先講比較初級的。示例如下: GET import ( "fmt" "net/http" "io/ioutil

原创 golang之int、int6、float32、float64、string之間互轉

package main import ( "fmt" "strconv" ) func main() { string := "123" int, err := strconv.Atoi(string) if

原创 golang gin框架學習

書單 基礎

原创 golang版ip2long

func Ip2long(ipstr string) (ip uint32) { r := `^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})` reg, err := reg

原创 golang閱讀清單

Go 閱讀清單 此項目是一份關於Go的中文博客文章的閱讀列表。 靈感來源於:gopher-reading-list。 如果有新的文章也歡迎提交PR或issue。此項目只包含文章標題和鏈接,不會轉載文章內容。 由於能力、精力有限,

原创 golang面試專欄

一、Golang調度器GMP原理與調度全分析 二、Golang多線程安全 三、golang 上下文包作用 四、Redis底層數據結構 五、docker和k8s相關 六、consul和etcd微服務相關

原创 性能監控的95分位值含義以及意義

真實數據 最近優化有了一些效果,就正好藉着具體的實例數據來看看95分位值的意義。 看下面一張圖: 性能平均值: 95分位值舉例 收集100個數據,從小到大排列,95分位值就是取出第95個用戶的數據做統計。 50分位值就是第50個