第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

全部開(kāi)發(fā)者教程

Go 入門(mén)教程

Go 語(yǔ)言基礎(chǔ)教程
01 Go語(yǔ)言簡(jiǎn)介 02 Go 在 Windows 上的安裝及配置 03 Go 在 Linux 上的安裝與配置 04 Go 在 MacOS 上的安裝及配置 05 Git 的下載和安裝 06 VSCode 編輯器安裝和配置 07 Go 的變量聲明 08 Go 的變量賦值 09 Go 語(yǔ)言的 := 10 Go 的整型(int) 11 Go 的無(wú)符號(hào)整型(uint) 12 Go 的浮點(diǎn)型(float) 13 Go 的字符類型 14 Go 的布爾型(bool) 15 Go 的強(qiáng)制類型轉(zhuǎn)換 16 Go 語(yǔ)言的常量 17 Go 語(yǔ)言中代替枚舉的辦法 18 Go 語(yǔ)言中的運(yùn)算符 19 Go 語(yǔ)言的分支語(yǔ)句 20 Go 語(yǔ)言的循環(huán)語(yǔ)句 21 Go 語(yǔ)言的通道 22 Go 語(yǔ)言中的函數(shù) 23 Go 語(yǔ)言函數(shù)中的 defer 24 Go 語(yǔ)言中的閉包 25 Go 語(yǔ)言的指針 26 Go 語(yǔ)言中的數(shù)組 27 Go 語(yǔ)言中的切片 28 Go 語(yǔ)言中的 Map 29 Go 語(yǔ)言中的 range 30 Go 語(yǔ)言拓展以有類型 31 Go 語(yǔ)言中的結(jié)構(gòu)體和"面向?qū)ο?quot; 32 Go 語(yǔ)言中的接口 33 Go 語(yǔ)言類型的內(nèi)嵌 34 Go 語(yǔ)言中的 nil 35 Go 語(yǔ)言函數(shù)式編程 36 Go 語(yǔ)言中的錯(cuò)誤和異常處理 37 Go 語(yǔ)言的并發(fā) 38 Go 語(yǔ)言中的包 39 Go 語(yǔ)言 go mod 包依賴管理工具 40 Go 語(yǔ)言的文件操作 41 Go 語(yǔ)言中的系統(tǒng)包 42 Go 語(yǔ)言的 strings 系統(tǒng)包的使用 43 Go 語(yǔ)言中的變參 44 Go 語(yǔ)言中的反射 45 Go 語(yǔ)言性能測(cè)試 46 使用 Go 語(yǔ)言搭建簡(jiǎn)易登錄功能 47 使用 gin 包優(yōu)化登錄功能

Go 語(yǔ)言中的包

在 Go 語(yǔ)言的錯(cuò)誤處理中我們提到了 errors 包,當(dāng)時(shí)沒(méi)有詳細(xì)的介紹。本文就來(lái)詳細(xì)的介紹一下 Go 語(yǔ)言中包相關(guān)的概念。

和大部分語(yǔ)言一致,Go 語(yǔ)言也是支持調(diào)用其它文件中的 Go 代碼的。Go 語(yǔ)言是現(xiàn)這一功能則是通過(guò)包來(lái)實(shí)現(xiàn)的。而實(shí)現(xiàn)包的功能則是通過(guò)關(guān)鍵字 package 來(lái)實(shí)現(xiàn)的,使用 package 來(lái)聲明代碼所在的包。

1. 基本概念

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

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

2. 包的導(dǎo)入

現(xiàn)在的編譯器一般都會(huì)幫開(kāi)發(fā)者做掉導(dǎo)包這個(gè)功能,但是我們還是要了解一下如何導(dǎo)入一個(gè)包,使之可以在程序中使用。我們導(dǎo)入包需要用到一個(gè)叫 import 的關(guān)鍵字。

2.1 單行導(dǎo)入

可以使用形如import 包所在路徑的方式導(dǎo)入我們想要導(dǎo)入的包,其中包的路徑可以使用兩種方式來(lái)表示:

  • 相對(duì)路徑:即你的目標(biāo)包和你當(dāng)前代碼的相對(duì)路徑。
  • 絕對(duì)路徑:即 $GOPATH/src$GOROOT/src之后的路徑。

代碼示例

import firstgo/packagetest1
import ../packagetest2
  • 第 1 行:使用絕對(duì)路徑導(dǎo)入 packagetest1 這個(gè)包;
  • 第 2 行:使用相對(duì)路徑導(dǎo)入 packagetest2 這個(gè)包。

2.2多行導(dǎo)入

多行導(dǎo)入的方式有點(diǎn)類似于多個(gè)常量同時(shí)定義。

代碼示例:

import (
    firstgo/packagetest1
    firstgo/packagetest2
)

3. 使用規(guī)則

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

代碼示例

package packagetest1

import "fmt"

//定義私有變量name
var name = "Test1"

//PrintName 打印變量name
func PrintName() {
    fmt.Println("packagetest1 Name:", name)
}
package packagetest2

import "fmt"

//定義私有變量name
var name = "Test2"

//PrintName 打印變量name
func PrintName() {
    fmt.Println("packagetest2 Name:", name)
}
package main

import (
    "firstgo/packagetest1"
    "firstgo/packagetest2"
)

func main() {
    packagetest1.PrintName()//調(diào)用這個(gè)包中的PrintName()函數(shù)
    packagetest2.PrintName()//調(diào)用這個(gè)包中的PrintName()函數(shù)
}

執(zhí)行結(jié)果:

圖片描述

你在開(kāi)發(fā) main 包的代碼時(shí)你會(huì)發(fā)現(xiàn),你只能使用導(dǎo)入包中的 PrintName() 函數(shù),而不能使用包中的 name 變量。就是因?yàn)楹瘮?shù)的首字母是大寫(xiě),而變量的首字母是小寫(xiě)。

4. 小結(jié)

本文主要介紹了 Go 語(yǔ)言中代碼復(fù)用的方法。其中引入了包的概念,需要注意有以下兩個(gè)規(guī)則:

  • 包名的命名規(guī)則:

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