Golang Go语言中 巨佬,这个 main.go 中没看到 executor 是怎么初始化的呢

发布于 1周前 作者 eggper 来自 Go语言

MetaCubeX/mihomo 这个开源项目,Alpha 分支的 main.go 中,只是引入了"gayhub/metacubex/mihomo/hub/executor"这个包,而且在 executor.go 这个文件中也没看到有 init 方法。

而在 main.go 中直接就调用了 executor.ApplyConfig 和 executor.Shutdown 方法,

求巨佬指点一下 executor 这个东西是咋初始化出来的😭


Golang Go语言中 巨佬,这个 main.go 中没看到 executor 是怎么初始化的呢

更多关于Golang Go语言中 巨佬,这个 main.go 中没看到 executor 是怎么初始化的呢的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html

9 回复

你好歹贴个代码 main 文件目录链接啊,啥也没有谁会再自己去搜索帮你看

更多关于Golang Go语言中 巨佬,这个 main.go 中没看到 executor 是怎么初始化的呢的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


他又不是个类 class ,为啥要初始化?

全局搜下 init

hub/executor/executor.go
<br>package executor<br>func ApplyConfig(cfg *config.Config, force bool) {}<br>func Shutdown() {}<br>
基础语法详见 https://go.dev/doc/

原来是这样,我找错方向了,多谢大佬

是不看看 listenser ,,config 哪里有,ReCreateTun ,这个吧

好的好的,有点眉目了😁

在Go语言中,关于executor的初始化,通常不会在源代码中直接显露出来,尤其是当使用某些框架或库时,初始化过程可能被封装在内部或通过一些特定的模式(如依赖注入、初始化函数等)来完成。

如果你在一个main.go文件中没有看到executor的显式初始化,可能有以下几种情况:

  1. 全局变量初始化executor可能是在某个包级别被声明并初始化的全局变量。Go语言允许在包级别直接进行变量初始化。

  2. init函数:在Go中,每个包都可以包含一个或多个init函数,这些函数在main函数之前自动执行。executor可能是在某个包的init函数中初始化的。

  3. 依赖注入框架:如果你使用的是依赖注入框架(如Wire、Uber的Dig等),executor的初始化可能是通过框架的配置文件或代码生成的初始化函数来完成的。

  4. 单例模式或工厂模式executor可能是通过单例模式或工厂模式创建的,这样它的实例化就被封装在一个单独的函数或方法中,而你在main.go中只看到了这个实例的使用。

为了找到executor的初始化位置,你可以尝试搜索整个项目的代码库,查看是否有executor的声明和赋值,或者检查是否使用了上述提到的某种模式。理解这些初始化模式对于阅读和理解大型Go项目至关重要。

回到顶部