try 从另一个包和文件导入类型时出现问题.我试图导入的 struct 就是下面的那个.

type PriorityQueue []*Item

type Item struct {
   value string
   priority int   
   index int 
}

如果我把PriorityQueue和它的所有方法放在同一个文件中,我会声明它

pq:= &PriorityQueue{}

对于这个简单的问题,我像疯子一样在互联网上寻找答案,但没有找到答案.我通常用java编程,导入类很初级.

推荐答案

在Go中,您不导入类型或函数,而是导入packages(参见Spec: Import declarations).

进口声明示例:

import "container/list"

通过导入包,您可以访问它的所有exported个标识符,并且可以将它们称为packagename.Identifiername,例如:

var mylist *list.List = list.New()

// Or simply:
l := list.New()

进口申报有一些技巧,例如:

import m "container/list"

您可以用"m.Identifiername"表示导出的标识符,例如

l := m.New()

还可以通过执行以下操作:

import . "container/list"

您可以完全省略包名:

l := New()

但仅在"紧急情况"或发生名称冲突时(这很少见)才使用这些.

Go相关问答推荐

如何在Go中使用a-h/tempson渲染预格式的内容?

如何禁用Go SRC包中的VSCode警告?

Golang ==错误:OCI运行时创建失败:无法启动容器进程:exec:./" bin:stat./" bin:没有这样的文件或目录:未知

Go Net/http路由

如何将GoFr筛选器用于查询参数?

如何使用工作区方法扩展克隆的Golang库

如何在Golang中覆盖404

Go:如何在不加载正文的情况下创建 http 代理通行证

是否可以使用标准库构建 Go 二进制文件?

Go:如何在将 float64 转换为 float32 时判断精度损失

在 Go 中公开公共 JWK

使用自定义处理程序 nats golang 保留订阅方法

将 big.Int 转换为 [2]int64,反之亦然和二进制补码

为什么 `append(x[:0:0], x...)` 将切片复制到 Go 中的新后备数组中?

从 Makefile 运行时权限被拒绝

无法在 GORM 中排序

如何从 Go 1.18 中的单个方法返回两种不同的具体类型?

通用函数与外部包中的常见成员一起处理不同的 struct ?

如何在 Unmarshal 中使用泛型(转到 1.18)

Go Flag 用法 描述 包含 Word 值