go 使用自己寫的包

2021-09-29 10:00:22 字數 1341 閱讀 9756

參考《go語言程式設計入門與實戰技巧》

作業系統:win10,ide:goland

(1)在$gopath/src路徑下新建資料夾

這裡我建立了乙個名為mypkg的資料夾。

(2)在新建的資料夾下新建乙個go檔案

這裡我建立了乙個test.go檔案。

(3)在goland中編寫包

展開external libraries,在gopath的src下找到剛剛新建的檔案並開啟。

在檔案中新增函式,這裡新增了判斷是否為奇數和是否為偶數的兩個函式。

package even

func even(i int) bool

func odd(i int) bool

package main

import (

"fmt"

"mypkg"

)func main()

注意:這裡使用了even包裡的even函式,如果使用odd函式會報以下錯誤:

這是因為odd是乙個私有函式,在go語言中,並沒有使用public和private這樣的關鍵字來控制可見性,而是通過首字母大小寫來控制的(包括函式和變數),大寫表示可以被其他包訪問,小寫則不可以。

上面的嘗試中,我新建的路徑名為mypkg,新建的go檔名為test.go,而實際的包名為even,關於這三個命名我分析如下。

首先,資料夾名是包的路徑,也就是其他包呼叫時要import的,也就是說,其他包呼叫時需要import 「資料夾」。

而檔名則是沒有限制的,通常根據檔案內容來起,事實上,乙個資料夾下通常有多個go檔案,這些檔案的名稱並無限制,但是同一路徑下的go檔案中「package 包名」這一行攜帶的包名一定要一樣,否則會報錯。

包名就是實際的go檔案中「package 包名」中的包名,這是實際使用時需要的,也就是說,用法應該是這樣:

import "資料夾名"

包名.函式名()

一般情況下,資料夾名和包名會起成一樣的,go自帶的包基本都是這樣。

使用go寫乙個檢測tcpudp狀態的包

因為要跟著 dockerpool 的 寫 docker 管理的程式,所以今年的目標是學習 go 語言。看完 go 的入門教程,高深的 還看不懂,所以決定先嘗試寫一些平常可以用的東西,mac 底下的 nc 命令可以檢測很多東西,但是用著不習慣,所以決定寫乙個 check tcp udp 的包。pack...

go 寫檔案 go 寫檔案的方式

os.openfile openfile接收三個引數 檔名,檔案模式,許可權 以只寫方式開啟,並且追加寫入 os.create 底層還是呼叫了os.openfile,create 會建立乙個檔案,如果檔案已存在,會清空檔案,然後寫入。func main defer file.close n,err ...

Go標準包RPC的使用

package main import errors fmt net net rpc rpc服務端 實現兩個rpc介面 1.計算除數和被除數兩個數的乘積,返回乘積結果 2.計算除數和被除數兩個數的除法結果,返回商和餘數 請求引數結構體 type requestparam struct 乘積計算結果直...