Нет смысла переопределять основную функцию дважды в одном пакете.Вы упомянули, что код работает нормально, помещая файлы mains.go
и vars.go
в отдельные папки.Это ожидается, и это то, что нужно сделать - размещение файлов в разных папках .
Если, однако, вам нужно запустить обе функции, измените настройки, используя простую процедуру, как определенониже:
// main.go
package main
import (
"fmt"
"sync"
)
var wg sync.WaitGroup
func main() {
fmt.Println("This is the mains file")
wg.Add(1)
go vars()
// do other stuff...
wg.Wait()
}
// vars.go
package main
import "fmt"
func vars() {
fmt.Println("This is the vars file")
// do other stuff...
wg.Done()
}
Это позволит вам запускать обе функции одновременно, находясь в одном пакете.Поскольку функции не могут иметь одно и то же имя функции: main()
, вам нужно заменить одно из них на другое, как я сделал.
Обратите внимание, что вы можете просто вызвать функцию vars()
без этого одновременно.