Подтвердить что ты не робот

Перейти - Как импортировать структуру, которая находится внутри другого пакета?

Я пытался научиться 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()
  }

Это работает отлично (и все остальные функции), как я ожидаю (список находится в $GOPATH). В списке пакетов я определил структуру следующим образом:

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

Я хотел использовать эту структуру в другой структуре, поэтому я попытался сделать что-то вроде этого,

type SomeType struct {
    lst *LinkedList
}

Но, к сожалению, у меня возникла ошибка, что тип LinkedList не определен. Как я могу использовать структуру, определенную в другом пакете?

4b9b3361

Ответ 1

Тип LinkedList находится в пространстве имен list, поэтому измените использование этого типа на:

type SomeType struct {
    lst *list.LinkedList
}