Несколько советов с Go и Gogland
Всем привет. Я очень новичок в Go и Gogland. У меня есть проект
- Я выбираю "Выполнить вид" в качестве пакета - чтобы запустить не только основной файл, но и проект. Почему он не может найти основной пакет??
- Как импортировать пакет util.myprinter в main.go, чтобы использовать его??
Пожалуйста, помогите мне
1 ответ
Во-первых, общая структура вашего рабочего пространства Go кажется неправильной. Вы должны сделать так, чтобы это выглядело так:
D:
|-- go_projects
| |-- bin
| |-- pkg
| |-- src
| | |-- FirstSteps
| | | |-- main.go
| | | +-- util
| | | +-- myprinter.go
| | |-- SecondProject
| | |-- ThirdProject
...
Второй твой import
утверждение кажется пустым, я понятия не имею, как работает goglang, но если вы хотите использовать то, что в вашем myprinter.go
файл, вам нужно будет импортировать util
пакет, предполагая, что myprinter.go
файл объявляет package
как util
на вершине.
// FirstSteps/main.go
package main
import (
"FirstSteps/util"
)
func main() {
util.MyPrinterFunc()
}
И, конечно, чтобы иметь возможность использовать что-либо из util
сначала должно быть что-то...
// FirstSteps/util/myprinter.go
package util
func MyPrinterFunc() {
// do stuff...
}
Изменить: Извините, я на самом деле не ответил на ваш вопрос. Вы получаете ошибку Cannot find package 'main'
из-за неправильной настройки рабочего пространства я уже упоминал. Package path
говорит Gogland, где пакет, который вы хотите запустить, относительно $GOPATH/src
каталог. Так что после того, как вы правильно настроили свое wrokspace, вы должны установить Package path
в FirstSteps
так как абсолютный путь этого пакета будет $GOPATH/src/FirstSteps
, Если позже вы хотите запустить util
пакет вы бы указали Package path
как FirstSteps/util
чтобы гогланд смог его найти.