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

Как вызвать функцию из другого файла на языке 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?

4b9b3361

Ответ 1

В вашем пакете не может быть более одного main.

В более общем плане вы не можете иметь более одной функции с заданным именем в пакете.

Удалите main в test2.go и скомпилируйте приложение. Функция demo будет видна из test1.go.

Ответ 2

Go Lang по умолчанию строит/запускает только указанный файл. Чтобы связать все файлы, вам нужно указать имя всех файлов во время работы.

Запустите любую из двух команд:

$go run test1.go test2.go. //order of file doesn't matter
$go run *.go

Вы должны сделать что-то подобное, если хотите их построить.

Ответ 3

Я искал то же самое. Чтобы ответить на ваш вопрос "Как вызвать демонстрацию в 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")
}