最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Go初學(xué)者踩坑之go?mod?init與自定義包的使用

 更新時(shí)間:2022年10月25日 11:51:05   作者:MaraSun  
go?mod是go的一個(gè)模塊管理工具,用來(lái)代替?zhèn)鹘y(tǒng)的GOPATH方案,下面這篇文章主要給大家介紹了關(guān)于Go初學(xué)者踩坑之go?mod?init與自定義包的使用,需要的朋友可以參考下

前言

入門(mén)很容易的 hello world, 到使用自定義包算一個(gè)小的進(jìn)步,然而在使用上竟然浪費(fèi)了不少時(shí)間,上網(wǎng)查了半天,才解決問(wèn)題.

第一明確 是哪種方式,是go mod 方式 還是 go path 方式, 請(qǐng)自己查一下,本小文直說(shuō)go mog 方式的小問(wèn)題.

首先看一下 文檔結(jié)構(gòu)

我自己寫(xiě)了個(gè) ToolKit.go, 內(nèi)容大致如下:

問(wèn)題是:怎么引用它

//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è)東西考下來(lái), 寫(xiě)成這樣

ackage main

import (
	"testing"
	"iot_watcher.com/ToolKit"
)

就沒(méi)問(wèn)題了.

為了方便,寫(xiě)成別名引用方式

package main

import (
	"testing"
	
	ToolKit "iot_watcher.com/ToolKit"
)

補(bǔ)充: 終于明白 go mod init anyName.com

這個(gè)anyName.com 東西的用途了(一點(diǎn)兒用途)

說(shuō)實(shí)話(huà), 我最討厭這種幾乎一點(diǎn)兒含金量都沒(méi)有的系統(tǒng)配置了. 從微軟的MFC 到go , 真是無(wú)奈.浪費(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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 分析Go語(yǔ)言接口的設(shè)計(jì)原則

    分析Go語(yǔ)言接口的設(shè)計(jì)原則

    interface是Go語(yǔ)言的基礎(chǔ)特性之一, 可以理解為對(duì)一種類(lèi)型的規(guī)范或者約束。他跟java、c++不同, Go語(yǔ)言實(shí)現(xiàn)接口不需要顯示說(shuō)明實(shí)現(xiàn)了哪個(gè)接口, 也沒(méi)有繼承或者子類(lèi)或者implement關(guān)鍵字。只是通過(guò)約定的形式, 隱式的實(shí)現(xiàn)接口中的方法即可
    2021-06-06
  • golang值接收者和指針接收者的區(qū)別介紹

    golang值接收者和指針接收者的區(qū)別介紹

    這篇文章主要介紹了golang值接收者和指針接收者的區(qū)別,它和函數(shù)的區(qū)別在于方法有一個(gè)接收者,給一個(gè)函數(shù)添加一個(gè)接收者,那么它就變成了方法,接收者可以是值接收者,也可以是指針接收者,本文通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • Go Time庫(kù)中時(shí)間和日期相關(guān)的操作方法整理

    Go Time庫(kù)中時(shí)間和日期相關(guān)的操作方法整理

    這篇文章主要為大家整理了Go語(yǔ)言中的time庫(kù),包括時(shí)間、日期和時(shí)區(qū)等相關(guān)概念及使用方法,希望通過(guò)掌握這些知識(shí),大家可以更好地處理時(shí)間、日期和時(shí)區(qū)相關(guān)的問(wèn)題
    2023-08-08
  • 詳解Golang中Channel的高級(jí)用法

    詳解Golang中Channel的高級(jí)用法

    在Go語(yǔ)言中,chan(通道)是一種用于在不同的goroutine之間進(jìn)行通信的機(jī)制,通道可以是無(wú)緩沖的(同步的)或有緩沖的(異步的),本文給大家詳細(xì)介紹了Golang中Channel的高級(jí)用法,需要的朋友可以參考下
    2024-05-05
  • golang實(shí)現(xiàn)協(xié)程池的方法示例

    golang實(shí)現(xiàn)協(xié)程池的方法示例

    本文主要介紹了golang實(shí)現(xiàn)協(xié)程池的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-02-02
  • Golang通脈之map詳情

    Golang通脈之map詳情

    這篇文章主要介紹了Golang通脈之map,Go語(yǔ)言中提供的映射關(guān)系容器為map,其內(nèi)部使用散列表(hash)實(shí)現(xiàn),map 是一種無(wú)序的鍵值對(duì)的集合。map 最重要的一點(diǎn)是通過(guò) key 來(lái)快速檢索數(shù)據(jù),key 類(lèi)似于索引,指向數(shù)據(jù)的值 map 是一種集合,所以可以像迭代數(shù)組和切片那樣迭代它
    2021-10-10
  • golang return省略用法說(shuō)明

    golang return省略用法說(shuō)明

    這篇文章主要介紹了golang return省略用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12
  • Golang使用Decimal庫(kù)避免運(yùn)算中精度損失詳細(xì)步驟

    Golang使用Decimal庫(kù)避免運(yùn)算中精度損失詳細(xì)步驟

    decimal是為了解決Golang中浮點(diǎn)數(shù)計(jì)算時(shí)精度丟失問(wèn)題而生的一個(gè)庫(kù),使用decimal庫(kù)我們可以避免在go中使用浮點(diǎn)數(shù)出現(xiàn)精度丟失的問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于Golang使用Decimal庫(kù)避免運(yùn)算中精度損失的相關(guān)資料,需要的朋友可以參考下
    2023-06-06
  • Go語(yǔ)言驅(qū)動(dòng)低代碼應(yīng)用引擎工具Yao開(kāi)發(fā)管理系統(tǒng)

    Go語(yǔ)言驅(qū)動(dòng)低代碼應(yīng)用引擎工具Yao開(kāi)發(fā)管理系統(tǒng)

    這篇文章主要為大家介紹了Go語(yǔ)言驅(qū)動(dòng)低代碼應(yīng)用引擎工具Yao開(kāi)發(fā)管理系統(tǒng)使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • Golang實(shí)現(xiàn)常見(jiàn)的限流算法的示例代碼

    Golang實(shí)現(xiàn)常見(jiàn)的限流算法的示例代碼

    限流是項(xiàng)目中經(jīng)常需要使用到的一種工具,一般用于限制用戶(hù)的請(qǐng)求的頻率,也可以避免瞬間流量過(guò)大導(dǎo)致系統(tǒng)崩潰,或者穩(wěn)定消息處理速率,本文主要介紹了使用Go實(shí)現(xiàn)常見(jiàn)的限流算法,希望對(duì)大家有所幫助
    2023-04-04

最新評(píng)論

沅江市| 龙川县| 江山市| 龙州县| 延吉市| 花莲县| 金溪县| 望城县| 清徐县| 绥宁县| 灵山县| 兴海县| 绍兴县| 重庆市| 水城县| 博乐市| 铁岭市| 喀喇沁旗| 仁化县| 大埔县| 通渭县| 开鲁县| 喀喇| 肇东市| 望奎县| 莎车县| 无极县| 平安县| 明星| 阳原县| 习水县| 三门县| 涞源县| 和田市| 达日县| 林州市| 博兴县| 安徽省| 南岸区| 无极县| 安仁县|