04-包

什么是包,为什么使用包?

到目前为止,我们看到的 Go 程序都只有一个文件,文件里包含一个 main 函数和几个其他的函数。在实际中,这种把所有源代码编写在一个文件的方法并不好用。以这种方式编写,代码的重用和维护都会很困难。而包(Package)解决了这样的问题。
包用于组织 Go 源代码,提供了更好的可重用性与可读性。由于包提供了代码的封装,因此使得 Go 应用程序易于维护。
通过这个程序,我们会更好地理解包

main函数和main包

所有可执行的 Go 程序都必须包含一个 main 函数。这个函数是程序运行的入口。main 函数应该放置于 main 包中。
package packagename 这行代码指定了某一源文件属于一个包。它应该放在每一个源文件的第一行。(包名是该项目所处的文件夹名,启动文件改成main包)
下面开始为我们的程序创建一个 main 函数和 main 包。在 Go 工作区内的 src 文件夹中创建一个文件夹,命名为 geometry。在 geometry 文件夹中创建一个 geometry.go 文件。

在 geometry.go 中编写下面代码。

package main   #main包
import "fmt"  #导fmt包

func main() {  
    fmt.Println("Geometrical shape properties")
}

package main 这一行指定该文件属于 main 包。import "packagename" 语句用于导入一个已存在的包。在这里我们导入了 fmt包,包内含有 Println 方法。接下来是 main 函数,它会打印 Geometrical shape properties

创建自定义的包

属于某一个包的源文件都应该放置于一个单独命名的文件夹里。按照 Go 的惯例,是该文件夹名命名包名,在同一个文件夹下,包名必须一致启动文件的包名必须是main,其他文件夹的包名可以是文件夹名字。

导入自定义包

导入自定义包的语法为 import 包名。我们必须指定自定义包是针对于src文件夹的相对路径

// 包的使用
package main

import "mypackage"  #导入mypackage包(src文件夹下的mypackage文件夹)
import "fmt"

func main() {

    //想使用mypackage包下的test函数和test1函数
    mypackage.Test1()  #在外部使用package包下的Test1函数,函数需要首字母大写
    fmt.Println("xxx")

}

mypackage包

 

package mypackage
import "fmt"

func Test1()  {
    fmt.Println(test(1,2))
    fmt.Println("xxxx")
}

 

注意:(******)

1.在同一个包下,变量,函数,都不能重复定义
2.在包内定义的函数如果是小写字母开头,表示只能在包内部使用
3.在外部包想使用(不在同一个文件夹下的文件),必须首字母大写

下载第三方包可以在git上下载

 比如下面这个:

go get github.com/astaxie/beego

 

 

 

 

 

 

 

 

 

 

posted @ 2019-12-10 16:13  只会玩辅助  阅读(257)  评论(0编辑  收藏  举报