原创 go常見錯誤:結構體切片爲零值的坑

總結: 結構體切片中的有且只有一個結構體爲nil時,其總體結構的內容爲[],長度爲1(注意這裏的長度不是0)。 聲明一個空切片時,其結構爲空,長度爲0,但值不爲nil。 demo1: type Cat struct { }

原创 工廠方法(FactoryMethod)——go實現工廠方法模式

1. 意圖 定義一個用於創建對象的接口,讓子類決定實例化哪一個類。 2. 結構 3. 4類參與者 Product 定義工廠方法所創建的方法的接口 ConcreteProduct 實現Product方法 Creator

原创 golang_map的值拷貝函數實現

函數: func (p *Reporter) cloneTags(tags map[string]string) map[string]string { cloneTags := make(map[string]string

原创 golang_條件變量:sync.Cond作爲條件變量的使用

場景: 生產者消費者模型中(比如一個有緩存的channel中),生產者進行生產之前去搶鎖,如果緩存已滿,生產者搶鎖無效;消費者進行消費之前去搶鎖,如果緩存爲空,消費者搶鎖無效。所有在搶鎖之前需要進行一個判斷,稱之爲條件變量。 sy

原创 golang_微信頭像過期失效

背景 微信用戶更新頭像,原有的頭像url會失效,這時需要對失效的頭像做一個處理。 方案一 微信官方文檔中 授權後接口調用有下列描述: 請注意,在用戶修改微信頭像後,舊的微信頭像 URL 將會失效,因此開發者應該自己在獲取用戶信息

原创 golang_算法:字符串反轉且轉換大小寫

package main import "fmt" func reverse(str string) string { if len(str) <= 1 { return str } sli := make([]by

原创 HTTP_02_HTTP協議(請求和響應)

1 請求和響應 請求從客戶端發出,最後服務器端響應該請求並返回。 1.1 請求報文 GET /index.html HTTP/1.1 Host: example.com 第1行:請求方法(method)、請求URI(reque

原创 go-chi 簡單的httpserver服務器

package main import ( "github.com/go-chi/chi" "github.com/go-chi/chi/middleware" "io/ioutil" "log" "net/http"

原创 抽象工廠(AbstractFactory)——go實現抽象工廠模式

1. 意圖 提供一個創建一系列相關或相互依賴對象的接口,而無需指定它們具體的類。 2. 結構 3. 5種參與者 抽象工廠類(AbstractFactory) 聲明一個創建抽象產品對象的操作接口 具體工廠類(Concret

原创 HTTP_03_HTTP報文中的HTTP信息

1.HTTP報文 分爲3部分: 【報文首部】服務器端或客戶端需處理的請求或響應的內容及屬性 【空行(CR+LF)】CR(Carriage Return,回車符)和LF(Line Feed,換行符) 【報文主體】應被髮送的數據 其中

原创 MAC_homebrew安裝、鏡像更換及卸載

homebrew安裝 homebrew中文官網 homebrew安裝及卸載腳本 執行install.sh安裝腳本 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.c

原创 Redis_數據類型及命令詳細介紹

數據庫結構 redis是key-value的數據結構,每條數據都是⼀個鍵值對 鍵的類型是字符串 注意:鍵不能重複 數據類型分5種:string,hash,list,set,zset 字符串(String) 字符串類型是Redi

原创 golang_微信頭像過期無效的判定

背景 微信用戶更新頭像,原有的頭像url會失效,這時需要對失效的頭像做一個處理。 方案一 微信官方文檔中 授權後接口調用有下列描述: 請注意,在用戶修改微信頭像後,舊的微信頭像 URL 將會失效,因此開發者應該自己在獲取用戶信息

原创 golang_函數:可變參數函數(傳入的參數數量不限)

Variable Functions 可變參數函數,傳入參數的數量沒有限制 比如fmt.Print就是一個variable function package main import "fmt" func sum(nums

原创 SQL_基礎教程

課程1: Basic SQL(發音sei kuo) 課程來源:https://classroom.udacity.com/courses/ud198 ERD(Entry relationship diagram) 實體關係圖 這些