欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

golang中package的介紹和使用

golang中package怎么用?一般大家對go語言包的了解可能停留在概念的層面上,而對于package的使用方法了解相對較少。今天就跟大家聊聊package的使用方法。

站在用戶的角度思考問題,與客戶深入溝通,找到魚臺網(wǎng)站設計與魚臺網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站建設、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、主機域名、虛擬主機、企業(yè)郵箱。業(yè)務覆蓋魚臺地區(qū)。

1.Go語言的包(package)

1.1包介紹

包(package)是多個Go源碼的集合,是一種高級的代碼復用方案,Go語言為我們提供了很多內(nèi)置包,如fmt,os,io等。

1.2定義包

我們可以根據(jù)自己的需要創(chuàng)建自己的包。
一個包可以簡單理解為一個存放.go文件的文件夾。該文件夾下面的所有g(shù)o文件都要在代碼的第一行添加如下代碼,聲明改文件歸屬的包。

package 包名

注意事項:
1.一個文件夾下面直接包含的文件只能歸屬一個package,同樣一個package的文件不能再多個文件夾下。
2.包名可以不和文件夾的名字一樣,包名不能包含-符號。
3.包名為main的包為應用程序的入口包,這種包編譯后會得到一個可執(zhí)行文件,而編譯不包含main包的源代碼則不會得到可執(zhí)行文件。

1.3可見性

如果想在一個包中引用另外一個包里的標識符(如變量,常量,類型,函數(shù)等)時,該標識符必須是對外可見的(public)。
在Go語言中,只需要將標識符的首字母大寫就可以讓標識符對外可見了。
package pkg2

import "fmt"

// 包變量可見性

var a = 100 // 首字母小寫,外部包不可見,只能在當前包內(nèi)使用

// 首字母大寫外部包可見,可在其他包中使用
const Mode = 1

type person struct { // 首字母小寫,外部包不可見,只能在當前包內(nèi)使用
    name string
}

// 首字母大寫,外部包可見,可在其他包中使用
func Add(x, y int) int {
    return x + y
}

func age() { // 首字母小寫,外部包不可見,只能在當前包內(nèi)使用
    var Age = 18 // 函數(shù)局部變量,外部包不可見,只能在當前函數(shù)內(nèi)使用
    fmt.Println(Age)
}
結(jié)構(gòu)體中的字段名和接口中的方法名如果首字母都是大寫,外部包可以訪問這些字段和方法。例如:
type Student struct {
    Name  string //可在包外訪問的方法
    class string //僅限包內(nèi)訪問的字段
}

type Payer interface {
    init() //僅限包內(nèi)訪問的方法
    Pay()  //可在包外訪問的方法
}

1.4包的導入

要在代碼中引用其他包的內(nèi)容,需要使用import關鍵字導入使用的包。具體語法如下:

import "包的路徑"

注意事項:
1.import導入語句通常放在文件開頭包聲明語句的下面。
2.導入的包名需要使用雙引號包裹起來。
3.包名是從$GOPATH/src/后開始計算的,使用/進行路徑分隔。
4.GO語言中禁止循環(huán)導入包。

1.4.1單行導入

import "包1"
import "包2"

1.4.2多行導入

import (
    "包1"
    "包2"
)

1.5自定義包名

在導入包名的時候,我們還可以為導入的包設置別名。通常用于導入的包名太長或者導入的包名沖突的情況。具體語法格式如下:

import 別名 "包的路徑"
單行導入方式定義別名:
import "fmt"
import m "github.com/Q1mi/studygo/pkg_test"

func main() {
    fmt.Println(m.Add(100, 200))
    fmt.Println(m.Mode)
}
多行導入方式定義別名:
import (
    "fmt"
    m "github.com/Q1mi/studygo/pkg_test"
 )

func main() {
    fmt.Println(m.Add(100, 200))
    fmt.Println(m.Mode)
}

1.6匿名導入包

如果我們只希望導入包,而不使用內(nèi)部的數(shù)據(jù)時,可以使用匿名導入包。具體格式如下:

import _ "包的路徑"

匿名導入的包與其他方式導入的包一樣,都會被編譯到可執(zhí)行文件中。

1.7init()初始化函數(shù)

1.7.1init()函數(shù)介紹

在Go語言程序執(zhí)行時,導入包語句會自動觸發(fā)內(nèi)部init()函數(shù)的調(diào)用。
需要注意的是:
init()函數(shù)沒有參數(shù)也沒有返回值。
init()函數(shù)在程序運行時自動被調(diào)用執(zhí)行,不能再代碼中主動調(diào)用它。

golang中package的介紹和使用

1.7.2init()函數(shù)執(zhí)行順序

Go語言包會從main包開始檢查其導入的所有包,每個保重又可能導入了其他的包。
Go編譯器由此構(gòu)建出一個樹狀的包引用關系,再根據(jù)引用順序決定編譯順序,依次編譯這些包的代碼。

golang中package的介紹和使用

關于golang中package就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果喜歡這篇文章,不如把它分享出去讓更多的人看到。

網(wǎng)站名稱:golang中package的介紹和使用
分享URL:http://www.aaarwkj.com/article16/gjgodg.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、自適應網(wǎng)站云服務器、虛擬主機、面包屑導航、網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化
亚洲av一区二区在线看| 亚洲男人天堂黄色av| 久久精品国产亚洲av麻豆尤物| 中文字幕四虎在线观看| 亚洲综合日韩丝袜人妻| 欧美精品一区二区网址| 日本不卡视频二区三区| 9热在线视频精品这里只有| 69人妻一区二区三区蜜桃| 五十路八十路息与子交尾| 日本一区二区三级在线观看| 永久免费看黄在线观看| 亚洲国产第一尤物视频| 国内精品av在线观看| 国产一级成人免费视频| 日本精品在线亚洲国产欧美| 中文免费在线观看av| 福利一区福利二区视频| 18禁黄久久久一区二区三区| 欧美日韩一区二区综合在线视频| 国产成人亚洲合色婷婷| 一区二区蜜桃在线观看| 久久久久久成人亚洲| 欧美日韩综合在线第一页| 人妻少妇亚洲精品视频| 亚洲av成人噜噜网站| 午夜亚洲大片在线观看| 亚洲一区二区三区小蜜桃| 亚洲大陆免费在线视频| 在线观看不卡的黄色地址| 亚洲欧洲国产视频一区二区| 日韩av综合色区人妻| 国产精品 亚洲精品| 亚洲成人影院中文字幕| 91精品国产高清一区二区性色| 日本黄色美女日本黄色| 亚洲午夜一区二区三区精品影院| 久国产亚洲精品久久久极品| 99精品午夜福利在线| 久久产精品一区二区三区日韩| 婷婷激情六月中文字幕|