速戰速決 go go 物件導向 包

2022-09-20 11:57:11 字數 1559 閱讀 7361

速戰速決 go

作者 webabcd

示例如下:

oop/package1.go

// 設定當前檔案的包名,只需要指定當前資料夾的名稱即可,不用寫全名

package oop

// go 可以匯入內建包(goroot 路徑)和第三方包(gopath 路徑)和自定義包(你自己的路徑)

// go 的可見性控制:

// 1、如果定義的常量、變數、型別、介面、介面中的方法,結構體、結構體中的成員、函式等的名稱是大寫字母開頭,則表示能被其它包訪問或呼叫,非大寫字母開頭就只能在包內使用

// 2、同包名下互相可見所以不能重名

/*// 單行匯入

import "fmt"

// 然後就可以通過匯入的包名使用這個包下的東西了

fmt.println("***")

*//*

// 多行匯入

import (

"fmt"

"math")*/

/*// 為匯入的包指定別名

import f "fmt"

// 然後就可以通過別名使用這個包下的東西了

f.println("***")

*//*

// 以合併的方式匯入包

import . "fmt"

// 然後就可以直接使用這個包下的東西了

println("***")

*/// 匯入包時要寫全路徑

// 匯入包時,會先呼叫包中的檔案的 init 方法

// 如果 a 匯入了 b,b 匯入了 c,則先呼叫 c 中檔案的 init 方法,再呼叫 b 中檔案的 init 方法,最後呼叫 c 中檔案的 init 方法

// 如果同包有多個檔案都有 init 方法,則他們的呼叫順序不定

import (

// _ 的意思就是你無法使用這個包(但是會呼叫這個包中的檔案的 init 方法)

_ "gosample/oop/pkg1"

// 注:因為當前包引用了 gosample/oop/pkg1,而 gosample/oop/pkg1 引用了 gosample/oop/pkg1/pkg2,所以當前包如果被引用後則會列印

// pkg2 init

// pkg1 init

)func package1sample()

oop/pkg1/go.go

package pkg1

import (

// _ 的意思就是你無法使用這個包(但是會呼叫這個包中的檔案的 init 方法)

_ "gosample/oop/pkg1/pkg2"

"fmt"

)func init()

oop/pkg1/pkg2/go.go

package pkg2

import "fmt"

func init()

速戰速決 go

作者 webabcd

速戰速決 go go 基礎 指標

速戰速決 go 作者 webabcd 示例如下 basic pointer.go go 基礎 指標 package basic import fmt func pointersample func pointer sample1 fmt.println d func pointer sample2 ...

物件導向 包(package)

包 package 1 對類檔案進行分類管理 2 給類提供多層命名空間 3 解除安裝程式檔案的第一行 4 類名的全稱是 包名.類名 5 包也是一種封裝形式 總結 1 包與包之間進行訪問,被訪問包中的類以及類中的成員,需要public修飾。2 不同包中的子類還可以直接訪問父類中被protected許可...

物件導向之包

包與包之間進行訪問,被訪問的包中的類以及類中的成員,需要public修飾。不同包中的子類還可以直接訪問父類中被protected許可權修飾的成員。包與包之間可以使用的許可權只有兩種 public protected 四種訪問許可權 public protected default private 同...