Go初學(xué)者踩坑之go?mod?init與自定義包的使用
前言
入門很容易的 hello world, 到使用自定義包算一個(gè)小的進(jìn)步,然而在使用上竟然浪費(fèi)了不少時(shí)間,上網(wǎng)查了半天,才解決問題.
第一明確 是哪種方式,是go mod 方式 還是 go path 方式, 請自己查一下,本小文直說go mog 方式的小問題.
首先看一下 文檔結(jié)構(gòu)

我自己寫了個(gè) ToolKit.go, 內(nèi)容大致如下:
問題是:怎么引用它
//for all kind of tools
package Toolkit
import (
"net/http"
"strings"
)
func Left(str string, cnt int) string {
l := strings.Count(str, "")
if cnt >= l {
cnt = l - 1
} else if l < 0 {
l = 0
}
return str[0:cnt]
}
...
引用方式各種出錯(cuò),舉例如下:
package main import ( "testing" "ToolKit" )
或者:
package main import ( "testing" "./ToolKit" )
或者
package main import ( "testing" "/usr/local/src/go/iot_watcher/ToolKit" )
我能想到的方法都用到了,還是不行.
下面直接給出解決方案吧
查看 go.mod,內(nèi)容如下
module iot_watcher.com go 1.17
OK, 把 module 后面那個(gè)東西考下來, 寫成這樣
ackage main import ( "testing" "iot_watcher.com/ToolKit" )
就沒問題了.
為了方便,寫成別名引用方式
package main import ( "testing" ToolKit "iot_watcher.com/ToolKit" )
補(bǔ)充: 終于明白 go mod init anyName.com
這個(gè)anyName.com 東西的用途了(一點(diǎn)兒用途)
說實(shí)話, 我最討厭這種幾乎一點(diǎn)兒含金量都沒有的系統(tǒng)配置了. 從微軟的MFC 到go , 真是無奈.浪費(fèi)大量時(shí)間.
補(bǔ)充:go mod init出錯(cuò)
go mod init出錯(cuò),錯(cuò)誤提示如下:
go: cannot determine module path for source directory D:\workspace\go (outside GOPATH, no import comments)
解決辦法:添加模塊名參數(shù)
go mod init module_name
例如,在test目錄下,即test模塊,就用
go mod init test
總結(jié)
到此這篇關(guān)于Go初學(xué)者踩坑之go mod init與自定義包使用的文章就介紹到這了,更多相關(guān)go mod init與自定義包使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Go Time庫中時(shí)間和日期相關(guān)的操作方法整理
這篇文章主要為大家整理了Go語言中的time庫,包括時(shí)間、日期和時(shí)區(qū)等相關(guān)概念及使用方法,希望通過掌握這些知識,大家可以更好地處理時(shí)間、日期和時(shí)區(qū)相關(guān)的問題2023-08-08
golang實(shí)現(xiàn)協(xié)程池的方法示例
本文主要介紹了golang實(shí)現(xiàn)協(xié)程池的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-02-02
Golang使用Decimal庫避免運(yùn)算中精度損失詳細(xì)步驟
decimal是為了解決Golang中浮點(diǎn)數(shù)計(jì)算時(shí)精度丟失問題而生的一個(gè)庫,使用decimal庫我們可以避免在go中使用浮點(diǎn)數(shù)出現(xiàn)精度丟失的問題,下面這篇文章主要給大家介紹了關(guān)于Golang使用Decimal庫避免運(yùn)算中精度損失的相關(guān)資料,需要的朋友可以參考下2023-06-06
Go語言驅(qū)動(dòng)低代碼應(yīng)用引擎工具Yao開發(fā)管理系統(tǒng)
這篇文章主要為大家介紹了Go語言驅(qū)動(dòng)低代碼應(yīng)用引擎工具Yao開發(fā)管理系統(tǒng)使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
Golang實(shí)現(xiàn)常見的限流算法的示例代碼
限流是項(xiàng)目中經(jīng)常需要使用到的一種工具,一般用于限制用戶的請求的頻率,也可以避免瞬間流量過大導(dǎo)致系統(tǒng)崩潰,或者穩(wěn)定消息處理速率,本文主要介紹了使用Go實(shí)現(xiàn)常見的限流算法,希望對大家有所幫助2023-04-04

