Go 程序结构 import/package

102 阅读1分钟

【知识碎片】

  • GO 项目只有一个 main 包,不可导入
  • 同一目录下的 .go 文件的 package 必须相同
  • import 后接的是路径,通常路径最后一个分段名与包名相同,但并不是包,只是路径名。 目录结构如下:
helloworld/
├── ceshi
│   └── chesi.go
├── go.mod
└── main.go

情况一:包名和路径最后一个分段名不一致时

//ceshi.go代码
package ceshi_packageName

import "fmt"

func Ceshi() { // 方法名要大写,否则不是导出变量
	a := 4
	fmt.Println(a)
}
//main.go代码
package main

import (
	"fmt"

        //"路径"
	"helloworld/ceshi"
        
        // 给包起别名 "路径"
	// ceshi_p "helloworld/ceshi"
)

func main() {
	a := 4
	fmt.Println(a)

        // 测试
	// ceshi_packageName.Ceshi()
        
        // 别名测试
	// ceshi_p.Ceshi()
	
}

情况二:包名和路径一致时

//ceshi.go代码
package ceshi_packageName

import "fmt"

func Ceshi() { // 方法名要大写,否则不是导出变量
	a := 4
	fmt.Println(a)
}
//main.go代码
package main

import (
	"fmt"
        // "路径"
	"helloworld/ceshi"
)

func main() {
	a := 4
	fmt.Println(a)
        // 测试
	ceshi.Ceshi()
	
}