一尘不染

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

go

我尝试学习Go,但是我经常感到沮丧,因为其他语言似乎无法在Go中使用某些基本功能。因此,基本上,我想使用在其他文件中定义的结构类型。我能够使用结构类型以外的功能。在main.go中,

  package main

  import (
      "list"
  )

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

正如我所期望的那样,它可以完美运行(以及所有其他功能)(列表位于$ GOPATH中)。在软件包列表中,我将struct定义如下:

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

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

type SomeType struct {
    lst *LinkedList
}

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


阅读 232

收藏
2020-07-02

共1个答案

一尘不染

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

type SomeType struct {
    lst *list.LinkedList
}
2020-07-02