久久国产乱子伦精品免费M,亚洲一区二区三区91,欧美国产在线视频,国产精品视频久久

Go 語言中的包

在 Go 語言的錯誤處理中我們提到了 errors 包,當時沒有詳細的介紹。本文就來詳細的介紹一下?Go 語言中包相關的概念

和大部分語言一致,Go 語言也是支持調用其它文件中的 Go 代碼的。Go 語言是現這一功能則是通過包來實現的。而實現包的功能則是通過關鍵字?package?來實現的,使用?package?來聲明代碼所在的包。

 

1. 基本概念

Go 語言中一般使用文件所在的文件名來命名自己的包名,這樣層次清晰便于管理。其中包名定義的注意事項如下:

  • 包名一般都是全小寫;
  • 包名不可以是路徑;
  • 一個文件夾下只能有一個包名;
  • 每個程序的入口包名均為 main,只有有 main 包,程序才可以執行。

 

2. 包的導入

現在的編譯器一般都會幫開發者做掉導包這個功能,但是我們還是要了解一下如何導入一個包,使之可以在程序中使用。我們導入包需要用到一個叫?import?的關鍵字。

 

2.1 單行導入

可以使用形如import 包所在路徑的方式導入我們想要導入的包,其中包的路徑可以使用兩種方式來表示:

  • 相對路徑:即你的目標包和你當前代碼的相對路徑。
  • 絕對路徑:即?$GOPATH/src?和$GOROOT/src之后的路徑。

代碼示例

代碼塊
  • 1? import firstgo/packagetest1
  • 2? import ../packagetest2
  • 第 1 行:使用絕對路徑導入 packagetest1 這個包;
  • 第 2 行:使用相對路徑導入 packagetest2 這個包。

 

2.2多行導入

多行導入的方式有點類似于多個常量同時定義。

代碼示例:

代碼塊
  • 1? import (
  • 2? ? ? ? ? firstgo/packagetest1
  • 3? ? ? ? ? firstgo/packagetest2
  • 4? )

 

3. 使用規則

在 Go 語言中,并不是直接導入了你寫的一個包,你就可以直接使用包中的任何代碼。這里有一個類似于Java和.NET的私有和公有的概念,你只可以使用導入的包中的公有的函數、變量以及自定義類型。Go 語言中區分公有私有的方法很簡單,就是查看函數名、變量名以及自定義類型名的首字母是否為大寫,大寫的即為公有,小寫的為私有。

代碼示例

代碼塊
  • 1? package packagetest1
  • 2
  • 3? import "fmt"
  • 4
  • 5? //定義私有變量name
  • 6? var name = "Test1"
  • 7
  • 8? //PrintName 打印變量name
  • 9? func PrintName() {
  • 10? ? ? ? ? fmt.Println("packagetest1 Name:", name)
  • 11? }
  • 12? package packagetest2
  • 13
  • 14 import "fmt"
  • 15
  • 16? //定義私有變量name
  • 17? var name = "Test2"
  • 18
  • 19? //PrintName 打印變量name
  • 20? func PrintName() {
  • 21? ? ? ? ? fmt.Println("packagetest2 Name:", name)
  • 22? }
  • 23? package main
  • 24
  • 25? import (
  • 26? ? ? ? ? "firstgo/packagetest1"
  • 27? ? ? ? ? "firstgo/packagetest2"
  • 28? )
  • 29
  • 30? func main() {
  • 31? ? ? ? ? packagetest1.PrintName()//調用這個包中的PrintName()函數
  • 32? ? ? ? ? packagetest2.PrintName()//調用這個包中的PrintName()函數
  • 33? }

執行結果:

圖片描述

你在開發 main 包的代碼時你會發現,你只能使用導入包中的 PrintName() 函數,而不能使用包中的 name 變量。就是因為函數的首字母是大寫,而變量的首字母是小寫。

 

4. 小結

本文主要介紹了 Go 語言中代碼復用的方法。其中引入了包的概念,需要注意有以下兩個規則:

  • 包名的命名規則:
    • 包名一般都是全小寫;
    • 包名不可以是路徑;
    • 一個文件夾下只能有一個包名;
    • 每個程序的入口包名均為 main ,只有有 main 包,程序才可以執行。
  • 包中公有和私有的判定規則:公有首字母大寫,私有首字母小寫。

文章來源于網絡,侵刪!

相關新聞

歷經多年發展,已成為國內好評如潮的Linux云計算運維、SRE、Devops、網絡安全、云原生、Go、Python開發專業人才培訓機構!

    1. 主站蜘蛛池模板: 板桥市| 固安县| 登封市| 隆回县| 滦平县| 梅河口市| 牟定县| 商丘市| 南丹县| 龙岩市| 金坛市| 宣威市| 嘉善县| 博客| 东兰县| 鄂托克前旗| 和顺县| 金乡县| 华池县| 黔南| 磴口县| 义乌市| 汨罗市| 铜梁县| 永川市| 南漳县| 泰宁县| 运城市| 安康市| 安仁县| 杨浦区| 崇信县| 淮阳县| 侯马市| 汨罗市| 思南县| 什邡市| 梁平县| 县级市| 永昌县| 留坝县|