站長資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        go語言有哪些包

        go語言的包:1、fmt;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等等。

        go語言有哪些包

        本教程操作環(huán)境:windows10系統(tǒng)、GO 1.11.2、Dell G3電腦。

        Go 語言的源碼復(fù)用建立在包(package)基礎(chǔ)之上。Go 語言的入口 main() 函數(shù)所在的包(package)叫 main,main 包想要引用別的代碼,必須同樣以包的方式進行引用,本章內(nèi)容將詳細講解如何導(dǎo)出包的內(nèi)容及如何導(dǎo)入其他包。

        Go 語言的包與文件夾一一對應(yīng),所有與包相關(guān)的操作,必須依賴于工作目錄(GOPATH)。

        標準的Go語言代碼庫中包含了大量的包,并且在安裝 Go 的時候多數(shù)會自動安裝到系統(tǒng)中。我們可以在 $GOROOT/src/pkg 目錄中查看這些包。下面簡單介紹一些我們開發(fā)中常用的包。

        1) fmt

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

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

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

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

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

        2) io

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

        3) bufio

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

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

        4) sort

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

        5) strconv

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

        6) os

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

        7) sync

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

        8) flag

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

        9) encoding/json

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

        10) html/template

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

        11) net/http

        net/http 包提供 HTTP 相關(guān)服務(wù),主要包括 http 請求、響應(yīng)和 URL 的解析,以及基本的 http 客戶端和擴展的 http 服務(wù)。

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

        12) reflect

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

        13) os/exec

        os/exec 包提供了執(zhí)行自定義 linux 命令的相關(guān)實現(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 后調(diào)用 panic() 方法。

        推薦學習:Golang教程

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
        主站蜘蛛池模板: 国产精品亚洲欧美大片在线观看| 国产精品久久久久国产A级| 无码人妻精品一区二区三区久久| 久久夜色撩人精品国产| 久久久精品久久久久久| 国产精品视频网站| 中文字幕精品一区影音先锋| 久久亚洲国产午夜精品理论片| 欧美日韩精品一区二区在线播放| 亚洲日韩国产精品乱| 久久99国产乱子伦精品免费| 亚洲精品乱码久久久久久蜜桃图片 | 国产精品免费久久久久久久久| 99精品久久久久久久婷婷| 精品国产VA久久久久久久冰 | 久热这里只有精品视频6| 2021久久国自产拍精品| 久久777国产线看观看精品| 91精品国产麻豆国产自产在线| 精品日韩亚洲AV无码一区二区三区| 无码人妻精品一区二区蜜桃AV| 久久久一本精品99久久精品66 | 国产精品单位女同事在线| 精品一区二区三区免费| 91精品全国免费观看青青| 91精品国产91久久久久久蜜臀| 国产精品久久永久免费| 国产精品国产三级国产AV主播| 人人妻人人澡人人爽人人精品 | 国产亚洲午夜高清国产拍精品| 综合在线视频精品专区| 国产精品视频第一区二区三区 | 国产手机在线精品| 国产成人精品亚洲精品| 日韩精品欧美| 国产精品最新国产精品第十页| 99久久免费只有精品国产| 最新国产精品亚洲| 91精品国产91热久久久久福利| 99久久99久久精品国产片果冻| 亚洲午夜精品一区二区|