Go初學者踩坑之go mod init與自定義包的使用詳解
前言
入門很容易的 hello world, 到使用自定義包算一個小的進步,然而在使用上竟然浪費了不少時間,上網查了半天,才解決問題.
第一明確 是哪種方式,是go mod 方式 還是 go path 方式, 請自己查一下,本小文直說go mog 方式的小問題.
首先看一下 文件結構
我自己寫了個 ToolKit.go, 內容大致如下:
問題是:怎麼引用它
//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] } ...
引用方式各種出錯,舉例如下:
package main import ( "testing" "ToolKit" )
或者:
package main import ( "testing" "./ToolKit" )
或者
package main import ( "testing" "/usr/local/src/go/iot_watcher/ToolKit" )
我能想到的方法都用到了,還是不行.
下面直接給出解決方案吧
檢視 go.mod,內容如下
module iot_watcher.com go 1.17
OK, 把 module 後面那個東西考下來, 寫成這樣
ackage main import ( "testing" "iot_watcher.com/ToolKit" )
就沒問題了.
為了方便,寫成別名引用方式
package main import ( "testing" ToolKit "iot_watcher.com/ToolKit" )
補充: 終於明白 go mod init anyName.com
這個anyName.com 東西的用途了(一點兒用途)
說實話, 我最討厭這種幾乎一點兒含金量都沒有的系統配置了. 從微軟的MFC 到go , 真是無奈.浪費大量時間.
補充:go mod init出錯
go mod init出錯,錯誤提示如下:
go: cannot determine module path for source directory D:\workspace\go (outside GOPATH, no import comments)
解決辦法:新增模組名引數
go mod init module_name
例如,在test目錄下,即test模組,就用
go mod init test
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901823/viewspace-2923953/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 理解 go mod init 命令Go
- go mod 的使用及解答學習以來的疑惑(go mod 目錄、包名、import之間的關係)GoImport
- go mod init報錯問題Go
- [踩坑] Go Modules 使用Go
- go mod 使用Go
- Go Lang 使用go mod匯入本地包和第三方包飄紅解決方法Go
- Go 之基礎速學 (十三) golang 裡包的特殊使用和 init () 構造方法的使用Golang構造方法
- Go新手容易踩的坑(函式與方法)Go函式
- 【IOS初學者】UITableView與自定義UITableViewCelliOSUIView
- Python 初學者容易踩的 5 個坑Python
- 使用 Go Mod 進行包管理並代理拉包Go
- golang中go mod使用第三方包Golang
- Go 包管理歷史以及 Go mod 使用Go
- Go mod 使用遇到的問題Go
- Go踩坑筆記(十九)Go筆記
- Go json 踩坑記錄GoJSON
- 初識go的tomb包Go
- go語言開發入門:GO 開發者對 GO 初學者的建議Go
- Go 開發踩過的那些坑(適合Java轉Go)GoJava
- Go 語言閉包詳解Go
- 二、Go語言基礎:go install與go fmt命令使用示例詳解Go
- PHP 引用詳解 - 踩坑與妙用PHP
- 初學goGo
- 詳解Go regexp包中 ReplaceAllString 的用法Go
- Go Modules 詳解使用Go
- dubbo-go v3 版本 go module 踩坑記Go
- pyhanlp 停用詞與使用者自定義詞典功能詳解HanLP
- linux初學者自定義IP地址的方法Linux
- go mod: 配置代理Go
- 指定go mod 版本Go
- Go sync包的WaitGroup【同步等待組】詳解GoAI
- Go 語言 sync 包的應用詳解Go
- Go 武林外傳 - 解鎖 Micro 新姿勢之自定義服務Go
- spring security 6.0.8(boot 3.0.13)自定義 filter 踩坑-已解決SpringbootFilter
- Go | 閉包的使用Go
- Go init 函式Go函式
- go.mod版本管理Go
- Go新手容易踩的坑(控制結構相關)Go