[Golang自学] 初识包管理

一、包管理准则

1.一个文件夹可以称为一个包

  例如在项目目录下创建一个叫api的目录

2.在文件夹中可以创建多个文件

  例如在api目录下创建多个go文件,例如baidu.go,google.go

3.在同一个包下面的每个文件中必须指定包名称,推荐包名称与目录名相同

  在baidu.go和google.go文件中第一行都写上package api(这里也可以叫其他的,但推荐和目录名一直,以免混淆)

二、包的分类

1.main包

main包中必须存在一个main主函数作为程序的入口,相当于C语言中的main函数。

main包编译后为可执行文件。

2.非main包

非main包,用来将代码进行分类的。将其分别放在不同的包和文件中。

三、main包下的函数调用

1.在项目目录下创建多个go文件

2.编写如下代码

// app.go
package main

import "fmt"

func main(){
	fmt.Println("Hello World!!")
	show_msg()
}
// show.go
package main

import "fmt"

func show_msg(){
	fmt.Println("show msg...")
}

 可以看到,app.go和show.go都属于main包,app.go中包含main主函数,show.go中包含show_msg函数。

在main函数中对show_msg函数进行了调用。

3.使用IDE编译

如果出现以下错误:

 这个错误是因为,Goland IDE在编译时只对app.go文件进行了编译,而没有编译show.go文件,所以show.go中的show_msg调用失败。

修改编译器配置:

 将Run kind修改为目录类型,即编译器会编译该目录下所有的go文件。

此时再运行:

四、其他包下的函数调用

1.创建api包目录

 在项目目录下创建api子目录,并在其中创建baidu.go和google.go两个文件。

2.编写代码

// baidu.go
package api

import "fmt"

func Baidu(){
fmt.Println("BAIDU")
}
// google.go
package api

import "fmt"

func Google() {
	fmt.Println("GOOGLE")
}

3.在main中调用

// app.go
package main

import (
	"fmt"
	"new_program/api"
)

func main(){
	fmt.Println("Hello World!!")
	api.Baidu()
	api.Google()
}

  注意,在golang中,对函数名的命名有比较严格的要求,首字母大写表示公共函数,即可以在其他包中访问,如果首字母为小写,则只能在包内部使用,例如前面所描述的show_msg函数。

 

posted @ 2021-04-14 00:49  风间悠香  阅读(260)  评论(0编辑  收藏  举报