原创 使用gorm創建表時設置表備註信息
查了一圈都沒有找到建表時添加備註信息的方法,查看gorm文檔後發現,gorm確實沒有提供設置表備註的方法 但是在文檔裏面找到這個,直接改改就能用了 //檢查表是否存在 if !domain.DB().Migrator().HasT
原创 記錄一個gorm發生全局查詢條件的問題
正常情況下在使用gorm做修改操作時,會使用omit過濾一些字段,比如上圖中修改的時候就不應該修改創建時間和創建人字段的值。 關鍵點在於上圖如果omit中沒有增加id字段,會造成gorm的全局查詢條件問題, 簡單來講在下次查詢
原创 gorm根據表結構自動生成數據int類型變成bigint的問題
使用gorm自動生成數據的時候發現結構體字段爲int時,數據庫字段類型變成了bigint。 只需要把結構體字段類型int改爲int32就可以了 下圖爲gorm源碼對於字段類型的處理 每個字段都會有一個field結構來記錄字段的一些屬
原创 記錄一個mysql查詢時用Replace替換手機號脫敏的問題
原始sqlselect phone,Replace(phone,SUBSTR(phone,4,4),'****') from userswhere phone in( '15115111641','17395081916','1539182
原创 golang手機號格式驗證2022-03-15
經過使用移動已經有了195號碼段 增加了195號碼段驗證 //VerifyPhone func VerifyPhone(phone string) bool { regular := "^((13[0-9])|(14[5,7])|(15[0
原创 GO語言的Context
context包定義了 Context 接口,Context 的具體實現包括 4 個方法,分別是Deadline、Done、Err 和 Value,如下所示: 下面來具體解釋下這 4 個方法。 Deadline 方法會返回這個 Con
原创 GO語言鎖的處理機制(簡單描述,不喜勿噴,歡迎糾正)
獲取鎖的機制 如果當前沒有goroutine獲取到鎖則直接獲取 如果鎖已經被獲取,則goroutine會被休眠加入一個先進先出的隊列 解鎖的機制 1.嘗試解鎖,如果本來就沒有加鎖,則拋異常 2.正常解鎖後,通過信號量的方式喚醒等待中的g
原创 GO語言的垃圾回收
GC 算法有四種: 引用計數(reference counting) 標記-清除(mark & sweep) 節點複製(Copying Garbage Collection) 分代收集(Generational Garbage Colle
原创 GO語言的使用記錄(亂七八糟的東西)
1.byte[] 切片轉uint32 使用binary.BigEndian.Uint32方法轉換 buf := make([]byte, 8096) binary.BigEndian.Uint32(buf[:4])
原创 二二、GO語言的反射
基本介紹 1.反射可以在運行時動態獲取變量的各種信息,比如變量的類型(type),類別(kind) 2.如果是結構體變量還可以獲取到結構本身的信息(包括字段和方法) 3.通過反射可以修改變量的值,可以調用關聯的方法 4.使用
原创 二一:GO語言的goroutine(協程)和channel(管道),重點!!!
前言:要了解協程和管道首先得了解以下四個概念 進程和線程簡單說明 1.進程就是程序在操作系統中的一次執行過程,是系統進行資源分配和調度的基本單位 2.線程是進程的一個執行實例,是程序執行的最小單元,它是比進程更小的獨立運行的基本
原创 二十、GO語言的單元測試
基本介紹 go語言自帶有一個輕量級的測試框架testing和自帶的go test命令來實現單元測試和性能測試 testing框架和其他語言中的測試框架類似,可以基於這個框架寫針對相應的函數的測試用例,也可以基於該框架寫相應的壓力
原创 十九:GO語言的接口(interface)
基本介紹 interface類型可以定義一組方法,但是這些不需要實現,並且interface不能包含任何變量。到某個自定義類型(比如結構體)要使用的時候,在根據具體情況把這些方法實現 基本語法 type 接口名 interfac
原创 十八、GO語言的結構體(struct)
基本介紹 1.從概念或叫法放上看:結構體的字段=屬性=field 2.字段是結構體的一個組成部分,一般是基本數據類型、數組,也可以是引用類型 3.在創建一個結構體變量後,如果沒有給字段賦值,都對應一個默認值,具體值與字段類型
原创 十七:GO語言的map
基本語法 var 變量名 map[key類型] value類型 key可以是很多種類型,比如bool,數字,string,指針,channer,還可以是隻包含前面幾個類型的接口,結構體,數組。通常爲int,string,不可重複,如