从 Go 中的不同包导入结构
在使用多个包和文件的复杂应用程序时,通常需要重用数据结构在不同的位置定义。在 Java 中,从其他包导入类是很简单的。然而,Go 采用了不同的方法。
导入包
与 Java 不同,Go 不直接导入类型或函数。相反,我们导入包。导入声明允许我们访问该包中的所有导出标识符。例如:
import "container/list"
导入包后,我们可以使用 packagename.Identifiername 访问其导出的标识符:
var mylist *list.List = list.New()
导入结构
要导入在另一个包和文件中定义的结构,只需按照以下步骤操作步骤:
pq := &PriorityQueue{}
import ( "path/to/package" )
示例
假设我们在单独的文件中定义了一个 PriorityQueue 结构体:
package path/to/package type PriorityQueue []*Item type Item struct { value string priority int index int }
到在另一个文件中使用这个结构,我们可以导入包并声明一个 PriorityQueue变量:
package main import ( "fmt" "path/to/package" ) func main() { pq := &path/to/package.PriorityQueue{} // Use the PriorityQueue pq.Push(&path/to/package.Item{value: "item1", priority: 1}) fmt.Println(pq) }
以上是Go中如何导入和使用不同包中的结构体?的详细内容。更多信息请关注PHP中文网其他相关文章!