go语言中的包你知道吗(代码片段)

jiangxiaoju jiangxiaoju     2022-11-30     183

关键词:

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

在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语言的包管理(代码片段)

1概述Go语言的源码复用建立在包(package)基础之上。包通过package,import,GOPATH操作完成。2main包Go语言的入口main()函数所在的包(package)叫main,main包想要引用别的代码,需要import导入!3包定义,packageGo语言的包与文件夹一一对应... 查看详情

go语言学习-基础知识(代码片段)

...面两个条件:有一个main()函数main()函数在main包中例如:在go语言中的helloworld程序如下://main.gopackagemainfuncmain()println("helloworld");程序中的package关键字,用来声明文件所属的包(文件所属的包跟文件名是没有关系的),每一个go文件都需... 查看详情

go语言中的打包和工具链(代码片段)

包所有Go语言的程序都会组织成若干组文件,每组文件被称为一个包。这样每个包的代码都可以作为很小的复用单元,被其他项目引用。包名惯例给包命名的惯例是使用包所在目录的名字。并不需要所有包的名字都与别的包不同... 查看详情

go的包(代码片段)

...ge)是多个Go源码的集合,是一种高级的代码复用方案,Go语言为我们提供了很多内置包,如fmt、os、io等定义包我们还可以根据自己的需要创建自己的包。一个包可以简单理解为一个存放.go文件的文件夹该文件夹下面的所有go文件... 查看详情

go语言基础之包(代码片段)

Go语言基础之包在工程化的Go语言开发项目中,Go语言的源码复用是建立在包(package)基础之上的。本文介绍了Go语言中如何定义包、如何导出包的内容及如何导入其他包。Go语言的包(package)包介绍包(package)是多个Go源码的集... 查看详情

go使用go语言打造定时提醒小工具,从基础到优化全方位探索(代码片段)

文章目录一、引言1.目的和背景2.选择GO语言的原因二、GO语言中的时间和定时器1.时间相关的包和函数2.定时器相关的包和函数三、使用GO语言实现功能四、代码改进1.time.AfterFunc()2.sync.WaitGroup3.接收参数五、总结一、引言1.目的和... 查看详情

[golang]go中函数和方法的区分(代码片段)

说明在很多的语言当中,函数就是方法,例如Java。但是在go语言当中,函数和方法不太一样,有明确的概念区分。go中,函数是指不属于任何结构体、类型的方法,也就是说,函数是没有接收者的;而方法有接收者。我们在go中... 查看详情

《go语言精进之路》读书笔记|理解go语言的包导入(代码片段)

书籍来源:《Go语言精进之路:从新手到高手的编程思想、方法和技巧》一边学习一边整理读书笔记,并与大家分享,侵权即删,谢谢支持!附上汇总贴:《Go语言精进之路》读书笔记|汇总_COCOgsta的博... 查看详情

区块链基础语言——go语言结构(代码片段)

...序我们第一个Go程序以最简单的Helloworld作为开始。所有Go语言程序文件的文件名都以“.go”结尾,该程序可以命名为:helloWorld.go。二、程序结构分析Go语言程序一般由关键字、包、常量、变量、运算符、符号、类型和函数... 查看详情

go语言必须支持多返回值函数,你知道为什么吗?(代码片段)

        大多数编程语言的函数(方法)都只能返回一个值,这种函数也是在数学中的标准定义,如y=f(x),后面的f(x)不管多复杂,y永远只有一个。不过有少数编程语言,函数可以返回多个值࿰... 查看详情

go语言必须支持多返回值函数,你知道为什么吗?(代码片段)

        大多数编程语言的函数(方法)都只能返回一个值,这种函数也是在数学中的标准定义,如y=f(x),后面的f(x)不管多复杂,y永远只有一个。不过有少数编程语言,函数可以返回多个值࿰... 查看详情

go包的理解(代码片段)

...了go,要去加载这个目录下所有的包文件(不包括子目录中的文件)一个目录中所有的源文件(不包括子目录)代表了单独的一个包,这些源文件内的package关键字指出的包名,必须一致,否则无法被使用import指定的加载目录、目... 查看详情

go语言结构体struct详解,go空结构体的这些妙用你知道吗?(代码片段)

本文详解了Go语言结构体的各个知识点,最后介绍了空结构体的3种妙用。希望对你有帮助。定义结构体,是一种自定义的数据类型,由多个数据类型组合而成。用于描述一类事物相关属性。定义方式:type类型名str... 查看详情

10.go语言基础之包(代码片段)

在工程化的GO语言开发项目中,GO语言的源码复用是建立在包(pakage)基础之上的。不仅GO语言中有包的概念,别的语言中也是有包的概念的。1.Go语言的包(package)1.1包介绍包(package)是多个Go源码的集合,是一种高级的代码复用方案,G... 查看详情

go语言init函数(代码片段)

Go语言init函数Goinit函数用途init()函数会在每个包完成初始化后自动执行,并且执行优先级比main函数高。init函数通常被用来:对变量进行初始化检查/修复程序的状态注册运行一次计算包的初始化为了使用导入的包,首先必须将其... 查看详情

go语言基础之包(代码片段)

在工程化的Go语言开发项目中,Go语言的源码复用是建立在包(package)基础之上的。本文介绍了Go语言中如何定义包、如何导出包的内容及如何导入其他包。包(package)介绍包(package)是多个Go源码的集合,是一种高级的代码复... 查看详情

golang包结构(代码片段)

...序的第一行语句必须是packagepkgnamepackagehello//hello为包名go中的包名称通常以一个全小写的单词(缩写)命名(如fmt),为了自己的包名称不和go标准库中的包名称重名,对于你自己的包必须要选择一个基本路径。例如你有一个fmt的包... 查看详情

go语言第一个程序(代码片段)

实例helloworld.gopackagemainimport("fmt")funcmain()fmt.Println("hello,world!")编译注意编译的时候,记得把源文件放在$GOPATH/src目录或者子目录下gobuildhelloworld.go运行结果hello,world!代码解读package:每个Go源文件的开头都是一个package声明,表示该文... 查看详情