原创 使用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,不可重複,如