Go语言中的包你知道吗
原创不易,未经允许,请勿转载。
在Go语言中,是通过包的形式在组织程序的,如果学过Java的同学应该能很快理解包这个概念。
在每个go文件中,第一行总是先定义一个包名,例如
package main
上面代码表示当前文件所在的包名为main。在Go语言中,main包中的main函数的程序的入口。
package mainimport ("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 demofunc Hello() {}func world() {}
有时候在导入包时,可能存在两个包名相同的情况,这时候就需要对包进行重命名,代码如下。使用hp替代http
import hp "net/http"
如果在使用其他包中函数或者变量是,不想每次都加上包名的话,可以批量导入包名所有的函数和变量。
.
表示导入fmt
包中的所有函数和变量
package mainimport . "fmt"func main() {Println("hello world")
}
如果这篇文章对您有所帮助,麻烦点个一键三连。
原创不易,未经允许,请勿转载。
博客主页:https://xiaojujiang.blog.csdn.net/
Go语言中的包你知道吗相关推荐
- clisp语言中的包
1. 包简介 clisp中的包就像一个名字空间一样,可在包中定义变量.函数等 包的另一个作用分离不同功能的模块代码组织. 包具有导入导出的概念,有特定关键字实现这个功能. make-package 包 ...
- 4.1 Go语言中包(Packages)基础知识
基本概念 包是函数和数据的集合 使用package关键字进行定义 文件名可以不完全与包名相同 包名通常使用小写字母定义 包里可以有很多文件,但是他们共享同一个包名 通过函数名称的大小写区分私有还是可被 ...
- 14. Go 语言中的类型断言是什么?
Hi,大家好,我是明哥. 在自己学习 Golang 的这段时间里,我写了详细的学习笔记放在我的个人微信公众号 <Go编程时光>,对于 Go 语言,我也算是个初学者,因此写的东西应该会比较适 ...
- R语言---使用cgdsr包下载TCGA数据---笔记整理
原文链接:https://mp.weixin.qq.com/s?__biz=MzAxMDkxODM1Ng==&mid=2247486492&idx=1&sn=3a7251244 ...
- R语言使用table1包绘制(生成)三线表、使用单变量分列构建三线表、编写自定义函数在三线表中添加p值
R语言使用table1包绘制(生成)三线表.使用单变量分列构建三线表.编写自定义函数在三线表中添加p值 目录
- R语言使用party包中的ctree函数构建条件推理决策树的流程和步骤、条件推理决策树是传统决策树的一个重要变体、条件推理树的分裂是基于显著性测试而不是熵/纯度/同质性度量来选择分裂
R语言使用party包中的ctree函数构建条件推理决策树的流程和步骤(Conditional inference trees).条件推理决策树是传统决策树的一个重要变体.条件推理树的分裂是基于显著性 ...
- 三线表是什么?R语言使用table1包绘制(生成)三线表、使用单变量分列构建三线表、编写自定义三线表结构(将因子变量细粒度化重新构建三线图)、编写自定义函数在三线表中添加p值
三线表是什么?R语言使用table1包绘制(生成)三线表.使用单变量分列构建三线表.编写自定义三线表结构(将因子变量细粒度化重新构建三线图).编写自定义函数在三线表中添加p值 目录
- R语言使用caret包构建随机森林模型(random forest)构建回归模型、通过method参数指定算法名称、通过ntree参数指定随机森林中树的个数
R语言使用caret包构建随机森林模型(random forest)构建回归模型.通过method参数指定算法名称.通过ntree参数指定随机森林中树的个数 目录
- R语言使用caret包中的createFolds函数对机器学习数据集进行交叉验证抽样、返回的样本列表长度为k个
R语言使用caret包中的createFolds函数对机器学习数据集进行交叉验证抽样.返回的样本列表长度为k个 目录
最新文章
- 华为发布面向2025十大趋势
- memcached客户端_对比Memcached和Redis,谁才是适合你的缓存?
- JVM指令:invokeSpecial/invokeVirtual/invokeStatic/invokeInterface/invokeDynamic方法调用指令
- C++字符串类型和数字之间的转换
- Netflix混沌工程手册Part 2:混沌工程原则
- rstudio 管道符号_R中的管道指南
- 正则-Strip函数
- 2022春节档新片预售总票房达1.08亿
- 不能编辑_解决cass9.0双击不能编辑文字和图块
- mysql 创建删除表_mysql创建删除表的的详细解析
- 《Python游戏趣味编程》标准IDE运行游戏代码的配置方法
- 【248天】跃迁之路——程序员高效学习方法论探索系列(实验阶段06-2017.10.11)...
- OSWatcher使用简介
- python全局变量定义_python全局变量和局部变量的概念
- 一个对象对应多个对象如何在一个界面里实现新增_谈MDM主数据管理系统设计和实现关键点...
- 自动控制原理 (二): 控制系统的微分方程
- 小爱同学app安卓版_小爱同学3.0版本下载-小爱同学3.0安装包下载v5.0.62 安卓最新版-2265安卓网...
- 误删除vmdk文件恢复办法
- python操作微信电脑版_python操作微信客户端:WechatPCAPI库实现自动化回复
- 那些大厂 HR 是怎么筛选简历的?
热门文章
- python小白从哪来开始-如何看待Python的由来?Python小白如何入门?(附教程)
- 投资30亿美元 IBM启动云计算大数据芯片研究计划
- 下载神器-IDM使用教程及下载
- OJ每日一练——输出绝对值
- 一下子Accepted不了吧
- C++模板——模板特化、分离编译
- mysql批量删除重复数据库_建站经验:sql语句快速删除重复内容之我见
- 六、Spring Boot整合Shiro
- Python基础教程之数据类型
- keil遇到FCARM - Output Name not specified, please check 'Options for Target - Utilities'解决方法