-
使用 gin 包優化登錄功能
上一個實戰文章我們學習了如何使用 Go 語言原生的 http 包來構建一個 web 應用,實現了一個簡單的登錄功能。因為原生的 http 包很多功能都需要自己去寫,所以就有很多開發者在原生包的基礎上開發了第三方包。本文就來介紹一個開發 Go web 十分流行的包——?gin 包。其官方地址為:https://github.com/gin-gonic/gin。 1. 下載 gin 包 因為是第三方包,所以需要從 github 上下載后才可使用。使用以下指令下載使用: 代碼塊 1? g…
-
使用 Go 語言搭建簡易登錄功能
在這篇文章之前,已經學完了 Go 語言所有基礎特性,對 Go 語言也有了一定掌握和理解。本文就來學習如何使用 Go 語言如何搭建一個 web 服務。這個 web 服務主要提供登錄的功能。 1. 搭建服務 在 Go 語言中想要搭建一個 http 服務是非常容易的一件事情,一行代碼就可以了。 代碼示例: 代碼塊 1? package main 2 3? import ( 4? ? ? ? "net/http" 5? ) 6 7? func main() { 8? ? ? ? http.…
-
Go 語言性能測試
本文來學習一下如何進行 Go 語言的性能測試。這里需要學習一個 Go 語言官方提供的工具 pprof: runtime/pprof:采集程序(非 Server)的運行數據進行分析; net/http/pprof:采集 HTTP Server 的運行時數據進行分析。 上述兩個包的底層實現是一樣的,一般建議直接在主函數上加上 http 服務而使用第二個包,畢竟可視化顯示易于觀察和操作。故本文僅介紹?net/http/pprof?的用法。 1. pprof 使用方法 直接在程序入口,也就…
-
Go 語言中的反射
反射是在 java 出現后迅速流行起來的一種概念,通過反射可以獲取豐富的類型信息,并可以利用這些類型信息做非常靈活的工作。大多數現代的高級語言都以各種形式支持反射功能,反射是把雙刃劍,功能強大但代碼可讀性并不理想,若非必要并不推薦使用反射。本文就來介紹一下反射在 Go 語言中的基本使用方法。 1. 通過反射獲取類型 在 Go 語言中提供反射的包為?reflect 包,其中reflect.Type()函數可以獲取一個變量的類型。 代碼示例: 代碼塊 1? package main 2…
-
Go 語言中的變參
在開發過程中,很有可能會遇到不確定傳入參數數量的問題。比如答題系統開發時,可能會遇到多選題,這里面就無法確定傳入參數的數量。此時就需要一個變參傳遞的方案,在 Go 語言中,使用...來接收或者傳遞變。 1. 使用…來接收變參 在函數的參數類型前加上...就可以用于接收不定長度的該類型的變參,如果連類型也無法確定,則使用...interface{}。變參類型的參數在使用時是一個變參類型的切片。 代碼示例: 代碼塊 1? package main 2 3? import "fmt" 4…
-
Go strings 系統包的使用說明
前文我們有學習了 string 變量,發現 Go 語言并沒有向面向對象語言那樣,類型中自帶方法來處理對象的值。Go語言中也有類似的操作,其操作全都在?strings 系統包中實現了。本文主要來講解一下如何使用 strings 系統包比較常用的字符串操作。 1. 獲取字符串長度 在往數據庫中寫入數據的時候,數據庫字段通常都會有長度限制,所以在寫入之前最好事先判斷一下字符串的長度是否符合自己的設計。 代碼示例: 代碼塊 1? package main 2 3? import ( 4? …
-
Go 語言中的系統包
之前已經學習了 Go 語言中的文件操作,同時Go語言用有很多其它的系統包,功能非常豐富。本文就來簡單介紹幾個 Go 語言中常用的系統包。 1. fmt 在 Go 語言中使用的最多的包沒有之一,用于各種輸出,甚至于組裝字符串,其中的 fmt.Println() 和fmt.Print() 是 Go 開發者們用的最多的函數。 2. io io 包中主要是對 os 接口的封裝,使其變得更加精簡,功能更豐富。 3. bufio bufio 包主要是對 io 包進行…
-
Go 語言的文件操作
本文主要介紹 Go 語言中對文件系統的操作,Go 語言內置庫中提供了豐富的文件操作函數,所以本文主要介紹使用Go 語言中的內置包——“os” 來實現文件操作。 1. 文件創建/打開 若你想創建/打開一個文件,則可以使用 代碼塊 1? func OpenFile(name string, flag int, perm uint32) (file *File, err Error) 參數解釋: name:就是文件名,若文件不在執行程序目錄下,則可以使用文件的相對路徑或者絕對路徑。 fl…
-
Go 語言 go mod 包依賴管理工具
前文了解了 Go 語言中的包來復用代碼,一直以來 Go 語言的包管理都是飽受開發者詬病的一個軟肋,直到官方推出了 go mod。這個強大的包管理工具使得我們徹底告別了 Go 語言繁瑣的包管理。本文就來介紹以下如何使用 go mod 來進行包管理。 Tips:只有在Go11.1之后的版本有這個工具,在Go語言13.0以后該工具趨于完善。本文的Go版本為13.5,建議使用最新版本的Go語言環境。 1. 指令介紹 在控制臺中輸入go mod指令,會出來這個工具的幫助命令。 指令解析如下表…
-
Go 語言中的包
在 Go 語言的錯誤處理中我們提到了 errors 包,當時沒有詳細的介紹。本文就來詳細的介紹一下?Go 語言中包相關的概念。 和大部分語言一致,Go 語言也是支持調用其它文件中的 Go 代碼的。Go 語言是現這一功能則是通過包來實現的。而實現包的功能則是通過關鍵字?package?來實現的,使用?package?來聲明代碼所在的包。 1. 基本概念 Go 語言中一般使用文件所在的文件名來命名自己的包名,這樣層次清晰便于管理。其中包名定義的注意事項如下: 包名一般都是全小寫; 包名…