日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Go初學者踩坑之go?mod?init與自定義包的使用_Golang

作者:MaraSun ? 更新時間: 2022-12-01 編程語言

前言

入門很容易的 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

總結

原文鏈接:https://blog.csdn.net/Uman/article/details/121774451

欄目分類
最近更新