一尘不染

从另一个包导入struct和文件golang

go

我在尝试从另一个包和文件导入类型时遇到问题。我要导入的结构是下面的那个。

type PriorityQueue []*Item

type Item struct {
   value string
   priority int   
   index int 
}

如果我将PriorityQueue及其所有方法放在同一个文件中,则可以使用

pq:= &PriorityQueue{}

我一直在像疯子一样在互联网上搜索这个简单问题的答案,但我没有找到答案。我通常用Java编程,而导入类是如此基础。


阅读 688

收藏
2020-07-02

共1个答案

一尘不染

在Go中,您不导入类型或函数,而是导入
(请参见Spec:导入声明)。

导入声明示例:

import "container/list"

通过导入包,您可以访问其所有 导出的 标识符,并且可以将它们称为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()

但是仅在“紧急情况下”或发生名称冲突(这种情况很少发生)时才使用。

2020-07-02