好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > golang 之import和package的使用

golang 之import和package的使用

熱門標簽:高德地圖標注口訣 中國地圖標注省會高清 學海導航地圖標注 浙江高速公路地圖標注 江西轉化率高的羿智云外呼系統 西部云谷一期地圖標注 地圖標注的汽車標 南通如皋申請開通400電話 廣州呼叫中心外呼系統

golang 使用包 package 來管理定義模塊,可以使用 import 關鍵字來導入使用。

  1. 如果導入的是 go 自帶的包,則會去安裝目錄 $GOROOT/src 按包路徑加載,如 fmt 包
  2. 如果是我們 go get 安裝或自定義的包,則會去 $GOPATH/src 下加載

package 的定義

package 的存放位置是以 $GOPATH/src 作為根目錄,然后靈活的按照目錄去組織,且包名需與最后一級目錄名一致。

例如我們自定義 baz 包,包模塊的存放位置則為 $GOPATH/src/foo/bar/baz,baz 包的源碼都存放在此目錄下,foo/bar/baz 則作為包路徑被 import 載入。

我們需要規范的將 baz 包中源碼的 package 定義為 baz,就定義好一個可 import 載入的的包了。

hello 模塊

//$GOPATH/src/foo/bar/baz/hello.go
package baz

import (
  "fmt"
)

// 模塊初始化函數 import 包時被調用
func init() {
  fmt.Println("hello module init function")
}

func Hello() {
  return "hello"
}

world 模塊

//$GOPATH/src/foo/bar/baz/world.go
package baz

import (
  "fmt"
)

// 模塊初始化函數 import 包時被調用
func init() {
  fmt.Println("world module init function")
}

func World() string {
  return "world"
}
package main

import (
  "fmt"
  "foo/bar/baz" //引入我們自定義的包
)

func main() {
  fmt.Println(baz.Hello(), baz.World())
}

import的使用

普通操作

import (
  "fmt"
  "log"
  "foo/bar/baz"
)

普通導入就是按照加載機制,將要使用的包導入進來,然后使用 packageName.MethodName 的方式調用包內的方法即可。注意如果要包方法在其他包中可以調用,包方法需要首字母大寫,例如:fmt.Println() fmt.Printf()。

別名操作

package main

import (
  "fmt"
  myBaz "foo/bar/baz"
)

func main() {
  fmt.Println(myBaz.Hello(), myBaz.World())
}

如果兩個包的包名存在沖突,或者包名太長需要簡寫時,我們可以使用別名導入來解決。

點操作

package main

import (
  "fmt"
  . "foo/bar/baz"
)

func main() {
  fmt.Println(Hello(), World()) // 直接使用包內的方法即可 不需要顯式使用包名
}

. 導入可以讓包內的方法注冊到當前包的上下文中,直接調用方法名即可,不需要再加包前綴。

下劃線操作

package main

import (
  "fmt"
  _ "foo/bar/baz"
)

func main() {
  fmt.Println(baz.Hello(), baz.World()) // 錯誤 _ 并沒有導入包 只是引入并執行包模塊的 init 方法
}

_ 是包引用操作,只會執行包下各模塊中的 init 方法,并不會真正的導入包,所以不可以調用包內的其他方法。

相信對很多 phper 來說遵循 PSR4 的 Namespace 會將與路徑緊密相關命名空間也作為類名的一部分,而 golang 則只將模塊目錄文件夾名作為包名,前面的路徑只是用來導入而和包名無關,還是有一點點需要注意的。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • 解決Goland 同一個package中函數互相調用的問題
  • 淺談golang package中init方法的多處定義及運行順序問題
  • maven package 打包報錯 Failed to execute goal的解決
  • golang package time的用法具體詳解
  • Go 自定義package包設置與導入操作

標簽:貴州 保定 常州 曲靖 許昌 德宏 吐魯番 東營

巨人網絡通訊聲明:本文標題《golang 之import和package的使用》,本文關鍵詞  golang,之,import,和,package,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《golang 之import和package的使用》相關的同類信息!
  • 本頁收集關于golang 之import和package的使用的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 樱花视频网站一区二区三区| 久久久久久精| 日本在线观看完整版免费视频 | 精品免费国产一区二区女| 91麻豆精品国产91久久久ios版| 黄色小网站在线观看| 啊啊啊啊啊好大| 猛烈无遮挡一区二区在线观看 | 91sex在线观看免费| 2012手机在线观看完整版| 《诱人的女教师2》在线播放| 男人扒开添女人下免费视频| 啊啊啊啪啪| 国产最顶级国精产品| 91福利国产在线观看菠萝蜜| 最新中文字幕一区二区乱码| 日本特黄大片高清在线观看 | 丰满女医生销魂娇喘呻吟| 第一福利在线永久视频www| 夜间直播软件下载| 欧美性猛交XXXX乱大交3男男| 《教室里的激情》在线观看 | 当着老公的面被别人欺负该怎么办| 鲜网辣文高h| 无码亚洲XXXXX在线观看少妇| 女生叫男生自己详述| 国产三?做暧免费观看| 色麻豆国产原创AV色哟哟| 26uuu在线亚洲综合色毛豆| 啊啊啊舒服视频| 麻麻装睡屁股让我进去视频 | 久久香蕉国产线看观看式| 湖北宜昌三峽制藥发生員工氣體中毒事故 | 成 人 国产高清| 可看美女内个的app| 在线观看欧美精品| 动漫美女露出胸的视频| 午夜福利一区二区三区无码| 91人妻少妇精品无码一区二区三区 | 伸进她的小内裤疯狂挠痒痒| 年轻女教师2bd高清在线观看|