проблема с import в GO

Я только учусь и не хочу понять как это работает. У меня есть 2 файла c названиями main.go и testBD.go они находятся в одной папке и поэтому в начале этих файлов написал package main В файле testBD.go содержится функция для генерации слайса с элементами чисел от 0 до 500:

package main

func GenSlice(testSlice []int) []int {
    resSlice := testSlice
    for i := 0; i < 500; i++ {
        resSlice = append(resSlice, i)
    }
    return resSlice
}

func main() {
    nowTime := time.Now()
    nums := []int{}
    fmt.Println(GenSlice(nums))
    afterTime := time.Now().Sub(nowTime)
    fmt.Println("Времени ушло", afterTime)
}

в функции main() я просто проверял время работы цикла А в файле main.go есть следующий код:

package main

import (
    "fmt"
)

func main() {
    nums := []int{}
    fmt.Println(GenSlice(nums))
}

Я ожидал увидеть просто вывод чисел в слайсе от 0 до 499 но получаю ошибку
# command-line-arguments .\main.go:9:14: undefined: GenSlice


Ответы (1 шт):

Автор решения: Space Researcher
  1. В файле testBD.go не должно быть своего main.(Если вы так тестировали свою программу, то для тестов функций файла testBD.go надо создать файл testBD_test.go)
  2. Убедитесь что вы создали файл go.mod
  3. разберитесь с модулями и пакетами установка библиотеки go, ошибка go: go.mod file not found in current directory or any parent directory и no required module provides package
  4. В чём разница между пакетами и модулями Golang?
→ Ссылка