Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在A包中引入B包,B包怎么获取A包的文件名?

在A包中引入B包,B包怎么获取A包的文件名?

提问于 2020-02-18 08:55:56
回答 1关注 0查看 215

在A包中引入B包,自动触发B包的init函数,init怎么获取到A的文件名?

回答 1

福大大架构师每日一题

发布于 2023-08-26 04:40:06

在Go语言中,无法直接获取引入包的文件名。init函数在包被引入时会被自动执行,但它本身没有直接获取导入它的包的能力。

不过,您可以使用`runtime`包的`Caller()`函数来获取调用init函数的文件名。这是一种比较常见的做法,但需要注意的是,它只能获取调用init函数的文件名,而不是直接导入包的文件名。

以下是一个示例代码,演示如何使用`runtime.Caller()`函数获取调用init函数的文件名:

```go

package B

import (

"fmt"

"runtime"

)

func init() {

_, filename, _, _ := runtime.Caller(0)

fmt.Println("Caller file:", filename)

}

```

在这个例子中,当B包被引入时,init函数会被自动执行,并输出调用它的文件名。

需要注意的是,这种方法仅适用于在运行时获取调用init函数的文件名。如果您需要获取编译时的包信息,可能需要使用其他的解决方案,例如修改编译器或使用代码生成工具。

和开发者交流更多问题细节吧,去 写回答
相关文章
【Python】Python 包 ① ( Python 包引入 | Python 包概念 | Python 包结构 | 创建 Python 包 | 导入 Python 包 )
之前 介绍了 Python 模块 , 每个 Python 源码文件 , 都可以定义为一个 Python 模块 ;
韩曙亮
2023/10/11
1.5K0
【Python】Python 包 ① ( Python 包引入 | Python 包概念 | Python 包结构 | 创建 Python 包 | 导入 Python 包 )
引入本地jar包
不管努力的目标是什么,不管他干什么,他单枪匹马总是没有力量的。合群永远是一切善良的人的最高需要。——歌德 对于本地jar包,如何让它加入我们的项目并使用maven的GAV管理起来呢 其实很简单 需要在当前项目根路径(在pom.xml的那层)使用 mvn install:install-file -Dfile=[本地jar包路径] -DgroupId=[自定义groupId] -DartifactId=[自定义artifactId] -Dversion=[自定义version] -Dpackaging=
阿超
2022/08/16
1K0
引入本地jar包
代码包的引入方式
注意这种方式的意义,当一个包被引入的时候,它的init方法会被执行,有时候,我们只希望执行包的init方式,那么这个_符就很有用了
酷走天涯
2019/06/11
5480
代码包的引入方式
获取请求包中的数据
Enumeration e = request.getHeaderNames(); while(e.hasMoreElements()){ String name = e.nextElement().toString(); System.out.println("headName"+request.getHeader(name)); } System.out.println("请求方式:"+request.getMethod()); System.ou
用户6493868
2022/03/06
2.3K0
go中包与包之间的引用(是怎么引用的?)
包的作用:我个人的理解是:相当于php的require的作用。包可以被其他程序引用和重复使用。通过将一些通用的功能封装在包中,可以在不同的项目中重复使用,提高开发效率
贵哥的编程之路
2023/10/16
4610
go中包与包之间的引用(是怎么引用的?)
linux抓包怎么查看数据包_shell curl获取返回数据
(2) 想要截获主机210.27.48.1 和主机210.27.48.2或210.27.48.3的通信,使用命令(注意:括号前的反斜杠是必须的):
全栈程序员站长
2022/11/04
4.1K0
【Python包】包的概念、2种建立包方式、包的使用
步骤:点击我自己的文件名PythonProject鼠标右键——》点击New ——》点击Directory(目录) ——》 输入目录名pg_message 回车——》建立好了名叫pg_message的目录——选中这个目录点击右键选择New,在弹出的菜单中选中Python file ——》 在选框中写上__init__文件名 回车——》这样包就建立好了。
python自学网
2022/10/07
1.6K0
【Python包】包的概念、2种建立包方式、包的使用
Netty中粘包/拆包处理
为突出 Netty 的粘包/拆包问题,这里通过例子进行重现问题,以下为突出问题的主要代码:
Bug开发工程师
2019/12/27
2.1K0
Netty中粘包/拆包处理
Netty中粘包/拆包处理
为突出 Netty 的粘包/拆包问题,这里通过例子进行重现问题,以下为突出问题的主要代码:
ytao
2020/06/04
1.2K0
Netty中粘包/拆包处理
maven引入本地jar包
但是有些情况,比如需要引入第三方包,如快递鸟,支付宝,微信等jar包(当然有可能直接提供maven依赖)
陈灬大灬海
2019/09/23
1.6K0
pycharm需要安装哪些包_用于引入包的关键字
在学习python的时候,被推荐了使用PyCharm这款IDE,但是在import包的时候却发生了问题- -无法引入,但是明明通过了pip
全栈程序员站长
2022/09/28
6760
pycharm需要安装哪些包_用于引入包的关键字
粘包问题怎么解决_包带粘手怎么处理
粘包就是连续向对端发送两个或者两个以上的数据包,对端在一次收取中受到的数据包数量可能大于1个,当大于1个时,可能时几个包加上某个包的部分,这这干脆几个完整的包在一起。当然,也可能收到的数据只是一个包的部分,这种情况一般也叫做半包。
全栈程序员站长
2022/09/22
7260
粘包问题怎么解决_包带粘手怎么处理
tar包和jar包和war包的区别?
tar:tar是*nix下的打包工具,生成的包通常也用tar作为扩展名,其实tar只是负责打包,不一定有压缩,事实上可以压缩,也可以不压缩,通常你看到xxxx.tar.gz,就表示这个tar包是压缩的,并且使用的压缩算法是GNU ZIP,而xxxx.tar.bz2就表示这个包使用了bzip2算法进行压缩,当然这样的命名只是一种惯例,并非强制。简单地说,tar就仅是打包。
ydymz
2018/09/10
1.8K0
.NET Core中的包、元包与框架
.NET Core是一个由NuGet包组成的平台。一些产品受益于细粒度包的定义,也有一些受益于粗粒度包的定义。为了适应这种二重性,.NET Core平台被分为一组细粒度的包(package)以及一些被称为元包(metapackage)的较粗粒度的包。
雪飞鸿
2018/09/05
1.2K0
.NET Core中的包、元包与框架
Java—包&导包
一、包 概念:包其实就是文件夹,方便对代码进行分类 定义格式: 格式:package 包名; (多级包用“.”分开) 范例:package com.company; 二、导包 举例: Cikian类和Test类在两个不同的软件包里 如果直接使用Test类创建对象会报错,这时便需要导包 导包有两种方式: public class Cikian { cn.company.Test te = new cn.company.Test(); }; 但是习惯使用第二种导包方式,即: import cn
Cikian.
2022/09/22
2.7K0
Java—包&导包
怎么运行jar包
首先我们需要有一个Java环境,接着在命令行中使用java -jar命令即可。以下是基本操作的示例。
很酷的站长
2023/10/20
1.5K0
怎么运行jar包
Golang中image/jpeg包和image/png包用法
jpeg包实现了jpeg图片的编码和解码 func Decode(r io.Reader) (image.Image, error) //Decode读取一个jpeg文件,并将他作为image.Image返回 func DecodeConfig(r io.Reader) (image.Config, error) //无需解码整个图像,DecodeConfig变能够返回整个图像的尺寸和颜色(Config具体定义查看gif包中的定义) func Encode(w io.Writer, m image.
李海彬
2018/03/20
4K0
Golang中image/jpeg包和image/png包用法
SpringBoot框架 引入外部Jar包
转载自:https://blog.csdn.net/m0_67401746/article/details/124035099
郭顺发
2023/07/07
1.3K0
抓包分析 | APP 抓不到包怎么办?
•单向验证的情况是客户端校验证书,校验出错就无法访问•双向认证的情况是客户端校验证书的时候,服务端也要校验证书,有一端证书校验失败都无法访问数据。缺点是服务器的压力比较大
咸鱼学Python
2019/11/23
4.2K0
点击加载更多

相似问题

资源包怎么使用?

059

安装包怎么下载?

0359

短信套餐包怎么使用?

1258

小白提问!!js中settimeout闭包循环怎么从外部更改包内变量?

1340

即时通信使用 npm 引入 SDK 后包过大怎么办?

0161
交个朋友
加入架构与运维工作实战群
高并发系统设计 运维自动化实践
加入北京开发者交友群
结识首都开发者 拓展技术人脉
加入前端工作实战群
前端工程化实践 组件库开发经验分享
换一批
相关问答用户
《用ChatGPT做软件测试》 | 作者擅长5个领域
中建数科 | 技术总监架构部总经理擅长3个领域
公司公司公司公司公司公司 | 职务职务职务职务职务职务擅长3个领域
擅长3个领域
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档