我在main个包中有一个名为main.go的文件.因为代码是不可重用的,所以我想将部分代码分离到不同的文件中,但在同一个包中.

如何将main.go的内容拆分成多个文件,而不创建单独的包?

我想要这样的目录 struct :

ls foo

# output:
main.go
bar.go
  • 档案:bar.go
package main

import "fmt"

func Bar() {
  fmt.Println("Bar")
}
  • 档案:main.go
package main

func main() {
  Bar()
}

当我跑go run main.go米的时候,它给了我:

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

推荐答案

Update 26th July 2019 (for go >=1.11)

go run .

也可以在Windows上运行.

原始答案(适用于非Windows环境)

代码实际上起作用了.问题是,我不应该跑go run main.go米,而应该跑:

go run *.go

Go相关问答推荐

如何禁用Go SRC包中的VSCode警告?

消费者在NAT中是如何实现的

GetSecretValue,get identity:get credentials:无法刷新缓存的凭据

Golang:访问any类型泛型上的字段

Go-如何在递归函数中关闭通道

Fizz对Gin的OpenAPI生成器正在重命名类型

使用GOTK3和librsvg在Go中如何加载内联SVG?

如何从 Go Lambda 函数返回 HTML?

错误!在为 age-viewer-go 运行 wails dev 或 wails build 命令时

获取 nil 指针类型的 reflect.Value

如何使用 GolangCI 删除未使用的导入

Gorm delete with clauses sqlmock 测试

为什么互斥量比 golang 中的通道慢?

如何使用 Go 代理状态为 OK 的预检请求?

无法使用 Golang 扫描文件路径

无限期运行 Go routine (完成后重新启动)

Go GCP 同时模拟两个服务帐户

Ginkgo/Gomega panic 测试失败

为什么 template.ParseFiles() 没有检测到这个错误?

我应该明确地创建一个与Belongs To或Has Many对称的关系吗?