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

全部開發(fā)者教程

Go 入門教程

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

Go 語言中的包

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

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

1. 基本概念

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

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

2. 包的導(dǎo)入

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

2.1 單行導(dǎo)入

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

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

代碼示例

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é)果:

圖片描述

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

4. 小結(jié)

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

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

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