当前位置:   article > 正文

Go初学者坑记之 go mod init 和自定义包的使用

go mod init

入门很容易的 hello world, 到使用自定义包算一个小的进步,然而在使用上竟然浪费了不少时间,上网查了半天,才解决问题.

第一明确 是哪种方式,是go mod 方式 还是 go path 方式, 请自己查一下,本小文直说go mod 方式的小问题.

首先看一下 文档结构
在这里插入图片描述

我自己写了个 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]
}
...
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

引用方式各种出错,举例如下:

package main
import (
	"testing"
	"ToolKit"
)
  • 1
  • 2
  • 3
  • 4
  • 5

或者:

package main
import (
	"testing"
	"./ToolKit"
)
  • 1
  • 2
  • 3
  • 4
  • 5

或者

package main
import (
	"testing"
	"/usr/local/src/go/iot_watcher/ToolKit"
)
  • 1
  • 2
  • 3
  • 4
  • 5

我能想到的方法都用到了,还是不行.

下面直接给出解决方案吧
查看 go.mod,内容如下

module iot_watcher.com

go 1.17
  • 1
  • 2
  • 3

OK, 把 module 后面那个东西考下来, 写成这样

package main

import (
	"testing"
	"iot_watcher.com/ToolKit"
)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

就没问题了.
为了方便,写成别名引用方式

package main

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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

补充: 终于明白 go mod init anyName.com
这个anyName.com 东西的用途了(一点儿用途)

说实话, 我最讨厌这种几乎一点儿含金量都没有的系统配置了. 从微软的MFC 到go , 真是无奈.浪费大量时间.

maraSun 2021-12-7 BJFWDQ

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/114748
推荐阅读
相关标签
  

闽ICP备14008679号