Go语言中的包你知道吗
Posted jiangxiaoju
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go语言中的包你知道吗相关的知识,希望对你有一定的参考价值。
原创不易,未经允许,请勿转载。
在Go语言中,是通过包的形式在组织程序的,如果学过Java的同学应该能很快理解包这个概念。
在每个go文件中,第一行总是先定义一个包名,例如
package main
上面代码表示当前文件所在的包名为main。在Go语言中,main包中的main函数的程序的入口。
package main
import (
"fmt"
"net/http"
)
func main()
http.HandleFunc("/", func(writer http.ResponseWriter, request *http.Request)
fmt.Println("有一个请求...")
writer.Write([]byte("hello world"))
)
http.ListenAndServe(":8080", nil)
上述程序保存在main.go文件中。表示开启一个http服务,监听8080端口。打开命令行,进入到main.go所在目录后,输入下列命令即可运行。
go run main.go
运行成功后,使用curl工具进去请求可以得到一个hello world的相应。而在程序运行窗口则会打印有一个请求...
curl localhost:8080
hello world
上述程序中,使用到了两个包,分别是fmt
和http
,而fmt
和net/http
则是这两个包所在的路径。
在对包进行命名时,一般要遵守一下几个规范:
- 包名与包所在路径的最后一个元素相同,例如
http
包和路径net/http
中最后一个元素是一样的。 - 包名不要与标准库重名。例如
fmt
、sync
等 - 包名要简单并包含一定的上下文信息。例如
controller
、service
等
当需要使用到其他包里面的变量或者函数时,可以使用import
关键字进行导入
import "fmt"
import "time"
也可以简写成,用一个小括号括起来,每个包路径占一行
import (
"fmt"
"time"
)
在Go语言中,函数或者变量名以大写开头的话则表示可以被导出,即可以在其他包中被使用。若是以小写开头都的话,则只能在包内使用。例如以下两个方法,Hello
方法可以在其他包中使用,而world
方法则不行
package demo
func Hello()
func world()
有时候在导入包时,可能存在两个包名相同的情况,这时候就需要对包进行重命名,代码如下。使用hp替代http
import hp "net/http"
如果在使用其他包中函数或者变量是,不想每次都加上包名的话,可以批量导入包名所有的函数和变量。.
表示导入fmt
包中的所有函数和变量
package main
import . "fmt"
func main()
Println("hello world")
如果这篇文章对您有所帮助,麻烦点个一键三连。
原创不易,未经允许,请勿转载。
以上是关于Go语言中的包你知道吗的主要内容,如果未能解决你的问题,请参考以下文章