日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

《Go程序设计语言》- 第10章:包和go工具

發布時間:2023/12/2 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《Go程序设计语言》- 第10章:包和go工具 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

    • 前言
    • 引言
    • 導入路徑
    • 包的聲明
    • 導入聲明
    • 空導入
    • 包及其命名
    • go工具

前言

本專欄是筆者在學習《Go程序設計語言》這本書時,對每個章節認為較為重要(容易忘記👻)的知識點記錄的筆記,其中也會有少量的思考👀, 現整理成博客分享出來。

如果對專欄感興趣,跑過去看一眼,書中的每一章都有:《Go程序設計語言》筆記

??注意??:本專欄不是詳細的知識講解,只是碎片的知識條目,或可作為Go知識點查漏補缺的小工具~

引言

  • 任何包管理系統的目的都是通過對關聯的特性進行分類,組織成便于理解和修改的單元,使其與程序的其它包保持獨立;模塊化允許包的復用;
  • Go程序編譯比較快,原因有三:
    • 所有導入文件都需要在包開頭顯式列出,這樣編譯器確定依賴時就不需要讀取完整文件
    • 包的依賴形成有向無環圖,所以包可獨立甚至并行編譯
    • 包輸出文件不僅包含自己的導出信息,還記錄它所依賴包的導出信息;
  • 導入路徑

  • Go語言規范沒有定義字符串如何確定一個包的導入路徑,它通過工具來解決這些問題;
  • 對于準備共享的包,其導入路徑需要全局唯一
  • 除了標準庫中的包,其它包一般以互聯網域名作為開始,便于查找;
  • 包的聲明

  • 通常包名是導入路徑的最后一段;所以路徑不同的包可能包名相同;如html.template和text.template;
  • 最后一段的例外:
    • 如果包定義了一條命令(可執行的Go程序),則包名必須為main;
    • 文件如果以_test.go結尾,則包名中會出現_test結尾;
    • 包名不包含版本號后綴,如:gopkg.in/yaml.v2;包名為yaml;
  • 導入聲明

  • gofmt和goimports會自動對導入包進行分組和排序;通常按照字母順序;
  • 如果導入兩個同名包,需要為其中一個命名;
  • 如果依賴形成了循環,則go build工具會報錯;
  • 空導入

  • import _ "xxx":導入xxx包,但不顯式使用;如:

    import(_ "github.com/go-sql-driver/mysql""github.com/jmoiron/sqlx" )
  • 包及其命名

  • 創建一個包時,采用簡短的名字,如http、fmt、ioutl等;
  • go工具

  • go工具可用來:下載、查詢、格式化、構建、測試、安裝Go代碼包;
  • go env查看、設置環境變量,常見環境變量:
  • GOOS:目標操作系統;
  • GOARCH:目標架構;
  • GOPATH:第三方包下載路徑,或是老式包組織方法使用的目錄;
  • GOROOT:一般為Go的安裝目錄;
  • go get下載單一的包;
  • go install安裝一個Go包,編譯后保存在GOPATH/pkg中,可執行的命令保存在GOPATH/bin中;
  • 包聲明之前的注釋被認為是整個包的注釋,通常只能有一個;
  • go doc輸出在命令行上指定的內容的聲明和整個文檔注釋;可以go doc time、go doc time.Since等;
  • go list pkgname查詢是否包含該包,包含則輸出位置;

  • 如有錯誤 ? ,歡迎指正 ??~

    如有收獲 🍗,可以考慮點贊👍/評論💬/收藏??/關注👀,大家共同進步~


    總結

    以上是生活随笔為你收集整理的《Go程序设计语言》- 第10章:包和go工具的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。