原创 記錄一個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,不可重複,如

原创 十四、GO語言的內置函數

1.len:用來求長度,比如string、array、slice、map、channel 2.new:用來分配內存,主要用來分配值類型,比如int、float32、struct等等,返回的是指針 3.make:用來分配內存,主要用來分配引用

原创 十五:GO語言的錯誤處理機制

GO語言在默認情況下,當發生錯誤後(panic),程序就會退出(崩潰) 如果希望在發生錯誤後,可以捕獲到錯誤,並進行處理,保證程序可以繼續執行,則需要使用GO語言的錯誤處理機制 GO語言中的錯誤處理方式爲:defer,panic,recov

原创 十六:GO語言的數組和切片(slice)

1.數組可以存放多個同樣的數據類型數據,數組也是一種數據類型,在GO中,數組是值類型   數組的定義   語法:var 數組名 [數組大小]數據類型   示例:var array [5]int   賦值:array[0] = 1 a[1]