How can I “go run” a project with multiple files in the main package?

I currently have a single file in my main package called main.go . How do I split the contents of main.go into multiple files without creating a separate package because the code isn’t reusable.

I want a directory structure like this:

$ ls foo



package main

import "fmt"

func Bar() {

Then in main.go

package main

func main() {

But go run main.go gives me:

# command-line-arguments
./main.go:4:2: undefined: Bar

Update 26th July 2019

go run .

Original answer

The code above actually works. The problem was I needed to run

go run *.go

instead of

go run main.go