Хотя вы не должны этого делать, но технически вы можете прочитать файл '.go' с помощью main () из другого файла .go. Ваш случай терпит неудачу, так как вы создаете пакет с несколькими файлами, определяющими main.
Снова поясняем, что не рекомендуется иметь несколько файлов с main в одном пакете, и он потерпит неудачу при сборке пакета. Это так, так как в пакете должна быть только одна точка входа (функция main ()).
По техническим соображениям вы можете прочитать файл go из другого в том же пакете, но в этом случае вам нужнопостроить только файл (не весь пакет). Вы также можете выполнить команду go run
$ cat main1.go
package main
import "fmt"
func main() {
fmt.Println("Hello")
}
$
$ cat readinfolder.go
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
filehandle, err := os.Open("main1.go")
if err != nil {
panic(err)
}
defer filehandle.Close()
scanner := bufio.NewScanner(filehandle)
for scanner.Scan() {
fmt.Println(scanner.Text())
}
}
$
$
$ go build readinfolder.go
$ ./readinfolder
package main
import "fmt"
func main() {
fmt.Println("Hello")
}
$
.