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
总结
到此这篇关于Go初学者踩坑之go mod init与自定义包使用的文章就介绍到这了,更多相关go mod init与自定义包使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
解决电脑用GoLand太卡将VsCode定制成Go IDE步骤过程
这篇文章主要为大家介绍了解决电脑用GoLand太卡,将VsCode定制成Go IDE步骤过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-11-11解决panic: assignment to entry in nil
这篇文章主要介绍了解决panic: assignment to entry in nil map问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2008-01-01go time.After优化后性能提升34%内存减少67%
这篇文章主要介绍了go语言time.After优化后性能提升34%内存减少67%实例分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-02-02
最新评论