溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Go語言常用內置包是什么

發(fā)布時間:2023-01-14 09:28:05 來源:億速云 閱讀:128 作者:iii 欄目:編程語言

今天小編給大家分享一下Go語言常用內置包是什么的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

常用內置包:1、fmt,可實現(xiàn)格式化的標準輸入輸出;2、io;3、bufio;4、sort;5、strconv;6、os;7、sync;8、flag;9、encoding/json;10、html/template;11、net/http;12、reflect;13、os/exec;14、strings;15、bytes;16、log;17、time;18、regexp。

Go 語言 的標準庫覆蓋網(wǎng)絡、系統(tǒng)、加密、編碼、圖形等各個方面,可以直接使用標準庫的 http 包進行 HTTP 協(xié)議的收發(fā)處理;網(wǎng)絡庫基于高性能的操作系統(tǒng)通信模型(Linux 的 epoll、Windows 的 IOCP);所有的加密、編碼都內建支持,不需要再從第三方開發(fā)者處獲取。

Go 語言的編譯器也是標準庫的一部分,通過詞法器掃描源碼,使用語法樹獲得源碼邏輯分支等。Go 語言的周邊工具也是建立在這些標準庫上。在標準庫上可以完成幾乎大部分的需求。

Golang 的內置包在安裝 Go 的時候多數(shù)會自動安裝到系統(tǒng)中。我們可以在 $GOROOT/src/pkg 目錄中查看這些包。

Go語言的常用內置包

1) fmt

fmt 包實現(xiàn)了格式化的標準輸入輸出,這與C語言中的 printf 和 scanf 類似。其中的 fmt.Printf() 和 fmt.Println() 是開發(fā)者使用最為頻繁的函數(shù)。

格式化短語派生于C語言,一些短語(%- 序列)是這樣使用:

  • %v:默認格式的值。當打印結構時,加號(%+v)會增加字段名;

  • %#v:Go樣式的值表達;

  • %T:帶有類型的 Go 樣式的值表達。

2) io

這個包提供了原始的 I/O 操作界面。它主要的任務是對 os 包這樣的原始的 I/O 進行封裝,增加一些其他相關,使其具有抽象功能用在公共的接口上。

3) bufio

bufio 包通過對 io 包的封裝,提供了數(shù)據(jù)緩沖功能,能夠一定程度減少大塊數(shù)據(jù)讀寫帶來的開銷。

在 bufio 各個組件內部都維護了一個緩沖區(qū),數(shù)據(jù)讀寫操作都直接通過緩存區(qū)進行。當發(fā)起一次讀寫操作時,會首先嘗試從緩沖區(qū)獲取數(shù)據(jù),只有當緩沖區(qū)沒有數(shù)據(jù)時,才會從數(shù)據(jù)源獲取數(shù)據(jù)更新緩沖。

4) sort

sort 包提供了用于對切片和用戶定義的集合進行排序的功能。

5) strconv

strconv 包提供了將字符串轉換成基本數(shù)據(jù)類型,或者從基本數(shù)據(jù)類型轉換為字符串的功能。

6) os

os 包提供了不依賴平臺的操作系統(tǒng)函數(shù)接口,設計像 Unix 風格,但錯誤處理是 go 風格,當 os 包使用時,如果失敗后返回錯誤類型而不是錯誤數(shù)量。

7) sync

sync 包實現(xiàn)多線程中鎖機制以及其他同步互斥機制。

8) flag

flag 包提供命令行參數(shù)的規(guī)則定義和傳入?yún)?shù)解析的功能。絕大部分的命令行程序都需要用到這個包。

9) encoding/json

JSON 目前廣泛用做網(wǎng)絡程序中的通信格式。encoding/json 包提供了對 JSON 的基本支持,比如從一個對象序列化為 JSON 字符串,或者從 JSON 字符串反序列化出一個具體的對象等。

10) html/template

主要實現(xiàn)了 web 開發(fā)中生成 html 的 template 的一些函數(shù)。

11) net/http

net/http 包提供 HTTP 相關服務,主要包括 http 請求、響應和 URL 的解析,以及基本的 http 客戶端和擴展的 http 服務。

通過 net/http 包,只需要數(shù)行代碼,即可實現(xiàn)一個爬蟲或者一個 Web 服務器,這在傳統(tǒng)語言中是無法想象的。

12) reflect

reflect 包實現(xiàn)了運行時反射,允許程序通過抽象類型操作對象。通常用于處理靜態(tài)類型 interface{} 的值,并且通過 Typeof 解析出其動態(tài)類型信息,通常會返回一個有接口類型 Type 的對象。

13) os/exec

os/exec 包提供了執(zhí)行自定義 linux 命令的相關實現(xiàn)。

14) strings

strings 包主要是處理字符串的一些函數(shù)集合,包括合并、查找、分割、比較、后綴檢查、索引、大小寫處理等等。

strings 包與 bytes 包的函數(shù)接口功能基本一致。

15) bytes

bytes 包提供了對字節(jié)切片進行讀寫操作的一系列函數(shù)。字節(jié)切片處理的函數(shù)比較多,分為基本處理函數(shù)、比較函數(shù)、后綴檢查函數(shù)、索引函數(shù)、分割函數(shù)、大小寫處理函數(shù)和子切片處理函數(shù)等。

16) log

log 包主要用于在程序中輸出日志。

log 包中提供了三類日志輸出接口,Print、Fatal 和 Panic。

Print 是普通輸出;

  • Fatal 是在執(zhí)行完 Print 后,執(zhí)行 os.Exit(1);

  • Panic 是在執(zhí)行完 Print 后調用 panic() 方法。

17)time

time 包主要用于與時間相關的操作,比如格式化時間、將時間轉換為時間戳,將時間戳轉換為時間字符串等操作。

18)regexp

對正則表達式的封裝。

以上就是“Go語言常用內置包是什么”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI