package和go文件的关系


什么是 package?

  • package 是 Go 的代码组织单元,用于将功能相关的代码分组到一起。
  • 每个 Go 文件都属于某个 package,通过 package 声明指定。
  • 一个 package 下可以包含多个 Go 文件,它们共享该 package 的作用域和功能。

package 和 Go 文件的关系

一个 package 对应多个 Go 文件

  • 一个 package 可以由多个 Go 文件组成,这些文件共享同一个 package 的作用域。
  • 在同一个 package 中,所有的全局变量、函数、类型等都可以在其他文件中直接访问,无需导入。

每个 Go 文件只能属于一个 package

  • 一个 Go 文件的代码只能声明一个 package,不能跨 package。

Go 文件之间的组织

  • 所有文件在一个目录下,并声明相同的 package,即可组成一个 package。
  • 通过这种方式,可以将功能相关的代码分散在多个文件中,便于维护和阅读。

示例:一个 package 多个 Go 文件

目录结构:

mathutil/
├── add.go
├── sub.go
├── mul.go

add.go

package mathutil

func Add(a, b int) int {
    return a + b
}

sub.go

package mathutil

func Sub(a, b int) int {
    return a - b
}

mul.go

package mathutil

func Mul(a, b int) int {
    return a * b
}

关键点

  1. 这三个文件都声明了 package mathutil,表示它们属于同一个 package。
  2. 其他代码可以通过导入 mathutil package,使用 Add, Sub, 和 Mul 函数。

特殊的 package main

  • package main 是程序的入口:包含 func main() 的文件必须声明为 package main
  • 这是 Go 的规范,用于表示可执行程序(而非库 package)。

posted @ 2024-11-20 15:30  牛马chen  阅读(7)  评论(0编辑  收藏  举报