如何导入其他包内的结构?

时间:2014-01-18 01:16:19

标签: struct go

我试图学习Go但我经常感到沮丧,因为其他语言的一些基本功能似乎在Go中不起作用。所以基本上,我想使用结构类型 在其他文件中定义。我能够使用除struct类型之外的函数。在main.go中,

  package main

  import (
      "list"
  )

  func main() {
      lst := list.NewList(false)         
      lst.Insert(5)
      lst.Insert(7)
      lst.InsertAt(2, 1)
      lst.PrintList()
  }

这完全符合我的预期(以及所有其他函数)(list在$ GOPATH中)。在包列表中,我将struct定义如下:

type LinkedList struct {
    head    *node
    size    int
    isFixed bool
}

我想在其他结构中使用这个结构,所以我试图做这样的事情,

type SomeType struct {
    lst *LinkedList
}

但不幸的是,我收到了未定义LinkedList类型的错误。如何使用其他包中定义的结构?

1 个答案:

答案 0 :(得分:24)

LinkedList类型位于list命名空间中,因此请将类型的用法更改为:

type SomeType struct {
    lst *list.LinkedList
}