解决golang在import自己的包报错的问题
原因:
使用git clone项目后,项目根路径是小写英文名称,比如cmdbapi,但是项目里面的import导入自己的相关包时,红色报错
解决:
把项目名称改写成import导入包的名称,即cmdbApi。当然也可以将import导入包改写成小写。
补充:golang之import导入包的一些特殊用法
我们学习了golang之后,晓得关键字import是go的包导入语法,而且我们的第一个程序通常都需要输出hello world。
示例如下:
import( "fmt" ) fmt.Println("hello world")
我们看到golang需要输出内容,需要引入包fmt;相对于php就比较麻烦了。上面这种引入方式是比较常见的方式,但是我们通常会遇到引入包之前有‘.',‘别名','-',对于新手同学来说很疑惑,这些是干嘛用的那?
点
例子:
import( . “fmt” )
含义:这个点操作的含义就是这个包导入之后在你调用这个包的函数时,你可以省略前缀的包名,也就是前面你调用的fmt.Println(“hello world”) 可以省略的写成Println(“hello world”)
别名
例子:
import( f “fmt” )
含义: 别名操作调用包函数时前缀变成了重命名的前缀,即f.Println(“hello world”)
例子:
import ( _ “github.com/go-sql-driver/mysql”)
含义:
操作其实只是引入该包。当导入一个包时,它所有的init()函数就会被执行,但有些时候并非真的需要使用这些包,仅仅是希望它的init()函数被执 行而已。
这个时候就可以使用_操作引用该包了。即使用_操作引用包是无法通过包名来调用包中的导出函数,而是只是为了简单的调用其init函数()
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。
相关推荐
-
golang 之import和package的使用
golang 使用包 package 来管理定义模块,可以使用 import 关键字来导入使用. 如果导入的是 go 自带的包,则会去安装目录 $GOROOT/src 按包路径加载,如 fmt 包 如果是我们 go get 安装或自定义的包,则会去 $GOPATH/src 下加载 package 的定义 package 的存放位置是以 $GOPATH/src 作为根目录,然后灵活的按照目录去组织,且包名需与最后一级目录名一致. 例如我们自定义 baz 包,包模块的存放位置则为 $GOPATH/s
-
golang import自定义包方式
1.初探 刚开始接触go时,以为import自定义包与Java工程类似,在非GOPATH的路径中新建了一个go项目HelloGo,如下: 接下来,利用beego的bee工具新建了另一个项目helloapi,如下: 现在,想在helloapi项目中调用HelloGo项目的函数,通过import引入"HelloGo",编辑器中一直提示无法引用,即使把HelloGo添加到左下角的GOPATH[helloapi]中,也没有效果. 具体如下: 问题出在HelloGo项目的路径上,因为其不在系统定
-
对Golang import 导入包语法详解
package 的导入语法 写 Go 代码的时经常用到 import 这个命令用来导入包,参考如下: import( "fmt" ) 然后在代码里面可以通过如下的方式调用: fmt.Println( "我爱北京天安门" ) fmt 是 Go 的标准库,它其实是去 GOROOT 下去加载该模块,当然 Go 的 import 还支持如下两种方式来加载自己写的模块: 相对路径 import "./model" // 当前文件同一目录的 model 目录
-
Golang import本地包和导入问题相关详解
1 本地包声明 包是Go程序的基本单位,所以每个Go程序源代码的开始都是一个包声明: package pkgName 这就是包声明,pkgName 告诉编译器,当前文件属于哪个包.一个包可以对应多个*.go源文件,标记它们属于同一包的唯一依据就是这个package声明,也就是说:无论多少个源文件,只要它们开头的package包相同,那么它们就属于同一个包,在编译后就只会生成一个.a文件,并且存放在$GOPATH/pkg文件夹下. 示例: (1) 我们在$GOPATH/目录下,创建如下结构的文件夹
-
Golang import 导入包语法及一些特殊用法详解
package 的导入语法 写 Go 代码的时经常用到 import 这个命令用来导入包,参考如下: import( "fmt" ) 然后在代码里面可以通过如下的方式调用: fmt.Println( "我爱我们" ) fmt 是 Go 的标准库,它其实是去 GOROOT 下去加载该模块,当然 Go 的 import 还支持如下两种方式来加载自己写的模块: 相对路径 import "./model" // 当前文件同一目录的 model 目录,但是
-
golang中import cycle not allowed解决的一种思路
发现问题 项目中碰到了一些问题,使用了指针函数的思路来解决相应问题 在实际项目中,因为两个项目互相引了对方的一些方法,导致了循环引用的错误,原本可以使用http的请求来解决,经过其他人指导,发现了可以使用指针函数来解决 这里通过一个简单的例子来说明,首先是例子的结构,我们仅仅用到了这两个文件:ciconnector.go和rockettest.go 例子结构 原本设定的方法是这两个包里的函数互相调用,那么我们通过代码来看下怎么解决相应的问题. 首先是rockettest.go,这里调用了cico
-
解决golang在import自己的包报错的问题
原因: 使用git clone项目后,项目根路径是小写英文名称,比如cmdbapi,但是项目里面的import导入自己的相关包时,红色报错 解决: 把项目名称改写成import导入包的名称,即cmdbApi.当然也可以将import导入包改写成小写. 补充:golang之import导入包的一些特殊用法 我们学习了golang之后,晓得关键字import是go的包导入语法,而且我们的第一个程序通常都需要输出hello world. 示例如下: import( "fmt" ) fmt.P
-
解决goland 导入项目后import里的包报红问题
解决办法: 1.Goland--->Preferences...--->Go--->GOPATH--->Project GOPATH下添加命令行go env下的GOPATH值,自行修改自己的Project GOPATH 2.正常情况下我们不需要自己去处理外部包的代理,但是也有可能就是你不经意之间做了修改,这边也是通过setting进行配置: 补充:GOLAND 导入项目后import里的包报红,以及$GOPATH/go.mod exists but should not 首先 im
-
关于JavaScript使用export和import的两个报错解决
目录 前言 报错:Uncaught SyntaxError: Cannot use import statement outside a module 报错:Uncaught SyntaxError: The requested module ‘…/js/ui.js’ does not provide an export named ‘default’ 总结 前言 作为一个前端小白,最近在学习使用JavaScript中的export和import,遇到了两个报错,特地记录下来. 报错:Uncau
-
解决Tensorflow2.0 tf.keras.Model.load_weights() 报错处理问题
错误描述: 1.保存模型:model.save_weights('./model.h5') 2.脚本重启 3.加载模型:model.load_weights('./model.h5') 4.模型报错:ValueError: You are trying to load a weight file containing 12 layers into a model with 0 layers. 问题分析: 模型创建后还没有编译,一般是在模型加载前调用model.build(input_shape)
-
Tomcat启动springboot项目war包报错:启动子级时出错的问题
今天公司springboot项目准备部署到测试服务器上进行测试,打包好war后放到tomcat里面启动后,前端文件能访问到,但是接口请求一直是404,一直找了很久的原因,tomcat启动是成功的,war打包的时候也提示build success了,tomcat启动日志发现报错: java.lang.IllegalStateException: 启动子级时出错 at org.apache.catalina.core.ContainerBase.addChildInternal(Containe
-
关于Python 解决Python3.9 pandas.read_excel(‘xxx.xlsx‘)报错的问题
问题描述 使用pandas库的read_excel()方法读取外部excel文件报错, 截图如下 好像是缺少了什么方法的样子 问题分析 分析个啥, 水平有限, 直接面向stackoverflow编程 https://stackoverflow.com/questions/64264563/attributeerror-elementtree-object-has-no-attribute-getiterator-when-trying 我找到了下面的这几种说法 根据国外大神的指点, 我得出了这些
-
关于vue3 解决getCurrentInstance 打包后线上环境报错问题
getCurrentInstance getCurrentInstance 支持访问内部组件实例. WARNING getCurrentInstance 只暴露给高阶使用场景,典型的比如在库中.强烈反对在应用的代码中使用 getCurrentInstance.请不要把它当作在组合式 API 中获取 this 的替代方案来使用. import { getCurrentInstance } from 'vue' const MyComponent = { setup() { const intern
-
MySQL解决Navicat设置默认字符串时的报错问题
目录 简介 问题复现 原因分析 解决方案 简介 说明 本文介绍用Navicat添加字段(字符串类型)并设置默认值时的报错问题. 问题描述 在Java开发过程中,经常会遇到给已有的表添加字段的场景. 在插入新字段的时候,表里边可能已经有很多数据了,这时我们最好给新插入的字段设置一个默认值,这样MySQL就会将已经存在的数据的新加字段设置为默认值.设置默认值可以增加系统的可维护性. 但我在给已有的表插入新字段(字符串类型)的时候发现报错了,本文介绍如何解决这个问题. 报错信息 1064 - You
-
解决Python中字符串和数字拼接报错的方法
前言 众所周知Python不像JS或者PHP这种弱类型语言里在字符串连接时会自动转换类型,如果直接将字符串和数字拼接会直接报错. 如以下的代码: # coding=utf8 str = '你的分数是:' num = 82 text = str+num+'分 | 琼台博客' print text 执行结果 直接报错:TypeError: cannot concatenate 'str' and 'int' objects 解决这个方法只有提前把num转换为字符串类型,可以使用bytes函数把int
-
解决安装python库时windows error5 报错的问题
python安装库时,有时候会报错windows error 5,可以尝试关闭所有使用python的编辑器.文件等,然后重新pip安装,如果还是不行,可以将报错最下层文件删除即可(如果不放心可以将该文件先备份),记录之~ windows error错误代码: windows error错误代码: 0操作成功完成. 1功能错误. 2系统找不到指定的文件. 3系统找不到指定的路径. 4系统无法打开文件. 5拒绝访问. 6句柄无效. 7存储控制块被损坏. 8存储空间不足,无法处理此命令. 9存储控制块
随机推荐
- vue+vuecli+webpack中使用mockjs模拟后端数据的示例
- U盘病毒vistaAA.exe的手动查杀方法
- vbs mdb打包解包代码打包
- 围观tangram js库
- javascript检测页面是否缩放的小例子
- asp.net 程序性能优化的七个方面 (c#(或vb.net)程序改进)
- 修改Android签名证书keystore的密码、别名alias以及别名密码
- MYSQL中常用的强制性操作(例如强制索引)
- Java数据导出功能之导出Excel文件实例
- IE Bug--浮动对象外补丁的双倍距离的解决方法
- jQuery横向擦除焦点图特效代码分享
- 详解C语言中的错误报告errno与其相关应用方法
- Android自定义LinearLayout布局显示不完整的解决方法
- 使用koa2创建web项目的方法步骤
- 代码分析vue中如何配置less
- python实现KNN分类算法
- laravel5环境隐藏index.php后缀(apache)的方法
- opencv利用霍夫变换检测直线进行图片校正
- Android数据传输中的参数加密代码示例
- Ubuntu18.04安装opencv 3.2.0的解决方法