Ответ 1
В вашем пакете не может быть более одного main
.
В более общем плане вы не можете иметь более одной функции с заданным именем в пакете.
Удалите main
в test2.go
и скомпилируйте приложение. Функция demo
будет видна из test1.go
.
Я хочу вызвать функцию из другого файла в go lang, кто-нибудь может помочь?
test1.go
package main
func main() {
demo()
}
test2.go
package main
import "fmt"
func main() {
}
func demo() {
fmt.Println("HI")
}
Как вызвать демо в test2 из test1?
В вашем пакете не может быть более одного main
.
В более общем плане вы не можете иметь более одной функции с заданным именем в пакете.
Удалите main
в test2.go
и скомпилируйте приложение. Функция demo
будет видна из test1.go
.
Go Lang по умолчанию строит/запускает только указанный файл. Чтобы связать все файлы, вам нужно указать имя всех файлов во время работы.
Запустите любую из двух команд:
$go run test1.go test2.go. //order of file doesn't matter
$go run *.go
Вы должны сделать что-то подобное, если хотите их построить.
Я искал то же самое. Чтобы ответить на ваш вопрос "Как вызвать демонстрацию в test2 из test1?", Вот как я это сделал. Запустите этот код командой go run test1.go
. Измените current_folder на папку, где находится test1.go.
test1.go
package main
import (
L "./lib"
)
func main() {
L.Demo()
}
Lib\test2.go
Поместите файл test2.go в подпапку lib
package lib
import "fmt"
// This func must be Exported, Capitalized, and comment added.
func Demo() {
fmt.Println("HI")
}