golang包引用解析

2022-02-04 04:06:12 字數 1591 閱讀 9770

環境變數配置如下:

vs code配置如下:

f:\workspace\go_home是總的golang工作空間, 在下面建立兩個必須的目錄src(必須[f:\workspace\go_home\src]),pkg(必須[f:\workspace\go_home\pkg]),bin(非必須.go intanll時自動建立).

以後每乙個單獨的專案都是在f:\workspace\go_home單獨建立乙個目錄. 比如下面:

test1test2這是兩個不同的專案.golang主要是通過這樣的目錄結構, 來管理包的關係. 使用包(package)這種語法元素來組織原始碼,所有語法可見性均定義在package這個級別

其中重要的是, 要理解應用包的定義. 應用包就是乙個個獨立的包體, 乙個包一般是某個功能的原始碼檔案組成的目錄(可以有多層的子目錄屬於這個包). 其他在最頂層的包目錄, 一般還會有個test檔案,用於單元測試.

那麼程式怎麼執行呢?

在專案頂層建立乙個main.go(程式執行入口), 包名注意一定是package main.

看例子, 以下是整個demo的檔案結構:

f:\workspace\go_home\src\test\calculate\calculate.go

package calculate

func mysqrt(val float64) float64

return z

}

f:\workspace\go_home\src\test\hello\hello.go

package hello

import "fmt"

func hello()

f:\workspace\go_home\src\test\main.go

package main

import (

"fmt"

"test/calculate" //這裡import的是目錄名, 不是包名字, 在golang中, 包名可以和目錄名不一致的

"test/hello" //這裡import的是目錄名, 不是包名字, 在golang中, 包名可以和目錄名不一致的

)func main()

//這裡import的是目錄名, 不是包名字, 在golang中, 包名可以和目錄名不一致的

//注意注意注意: 這裡應用的是包名, 不是目錄名

這兩個主要是要注意的, 總的來說是import的是包的路徑,引用包的東西是使用包名

Golang包引用中的點引用

在go中,點引用的方式相對不是那麼常見,一般大家都是在寫測試用例的時候才用。如果我們採用點引用的方式匯入乙個包,便會將引用包的公有結構和公有函式放到與當前檔案同乙個命令空間當中,這樣在呼叫這個包中的公有函式和結構時就不需要再加上對應包名作為字首了。比如 import math fmt fmt.pri...

golang之引用自己定義的包

初始目錄如下 其中main.go只有乙個主函式main 用於執行程式,array資料夾是自己定義的包,裡面sparr.go位於package array。sparr中的函式名或變數首字母得大寫。進入到array目錄,在終端輸入go install,在與src同級目錄下會有乙個pkg資料夾,裡面會有g...

Golang解析CSV檔案

日常工作實用csv型別檔案很普遍,而且很容易從其他資料來源中獲得。如google sheets,microsoft excel,或關係型資料庫。如何在應用中載入並解析csv呢,本文帶你實用golang解析csv檔案。通常其他語言處理csv檔案比較麻煩,通常需要通過第三方庫,解析工作量較大。golan...