Golang编程问题集锦

Posted pumpkin.zhu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Golang编程问题集锦相关的知识,希望对你有一定的参考价值。

文章目录

同级目录引用其他文件内容

@Date:2022-04-05

Crawlergo项目中,Crawlergo/cmd/crawlergo/crawlergo_cmd.go 通过 "crawlergo/pkg/config" 引用某个目录。

在 crawlergo_cmd.go 同级目录下创建 paramsFuzz.go,由于想和 crawlergo_cmd.go 的数据结构保持一致,计划引用该文件中的结构体。

引用报错:undefined

// 按照其他引用写法,使用如下路径引用	
// 报错:编译过程中会自动删除该行代码,然后变量就会报错 undefined
import("crawlergo/cmd/crawlergo/crawlergo_cmd")

编辑运行配置,发现

  • 工作目录:是项目根目录 crawlergo-0.4.2
  • 运行种类:文件

引用报错:import cycle not allowed

修改 运行 种类为目录,引用路径不变,此时 IDEA 可以看到找到了 crawlergo.Request 结构体,应该可以运行。运行时报错如下:

// 报错:import cycle not allowed
import("crawlergo/cmd/crawlergo/crawlergo_cmd")

参考文章

在使用import导入相应的包时,你可能会碰到 import cycle not allowed 这样的问题,出现这样的问题是你的包没有规划好,导致包相互依赖。

这种相互依赖可以通过将方法拆分到另一个包的方式来解决。

解决方式:其实考虑到了包依赖的问题,把结构体 crawlergo.Request 复制过来一份就行了。

以上是关于Golang编程问题集锦的主要内容,如果未能解决你的问题,请参考以下文章

Java和Golang到底哪个语言更简单?

golang之不安全编程

golang 并发编程之生产者消费者

[易学易懂系列|golang语言|零基础|快速入门|]

Closure in Golang

在Golang中是锁或Channel还是Atomic