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

上述程序中,使用到了两个包,分别是fmthttp,而fmtnet/http则是这两个包所在的路径。
在对包进行命名时,一般要遵守一下几个规范:

  • 包名与包所在路径的最后一个元素相同,例如http包和路径net/http中最后一个元素是一样的。
  • 包名不要与标准库重名。例如fmtsync
  • 包名要简单并包含一定的上下文信息。例如controllerservice

当需要使用到其他包里面的变量或者函数时,可以使用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")


如果这篇文章对您有所帮助,麻烦点个一键三连。

原创不易,未经允许,请勿转载。

博客主页:https://xiaojujiang.blog.csdn.net/

以上是关于Go语言中的包你知道吗的主要内容,如果未能解决你的问题,请参考以下文章

Go语言中的包你知道吗

Go语言之包管理

包——基本概念,自定义包,创建包,导出包中的标志符

10.Go语言基础之包

go语言笔记——包的概念本质上和java是一样的,通过大小写来区分private

8.Go语言基础之指针