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

在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

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

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

当需要使用到其他包里面的变量或者函数时,可以使用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语言中的包你知道吗相关推荐

  1. clisp语言中的包

    1. 包简介 clisp中的包就像一个名字空间一样,可在包中定义变量.函数等 包的另一个作用分离不同功能的模块代码组织. 包具有导入导出的概念,有特定关键字实现这个功能. make-package 包 ...

  2. 4.1 Go语言中包(Packages)基础知识

    基本概念 包是函数和数据的集合 使用package关键字进行定义 文件名可以不完全与包名相同 包名通常使用小写字母定义 包里可以有很多文件,但是他们共享同一个包名 通过函数名称的大小写区分私有还是可被 ...

  3. 14. Go 语言中的类型断言是什么?

    Hi,大家好,我是明哥. 在自己学习 Golang 的这段时间里,我写了详细的学习笔记放在我的个人微信公众号 <Go编程时光>,对于 Go 语言,我也算是个初学者,因此写的东西应该会比较适 ...

  4. R语言---使用cgdsr包下载TCGA数据---笔记整理

    原文链接:https://mp.weixin.qq.com/s?__biz=MzAxMDkxODM1Ng==&mid=2247486492&idx=1&sn=3a7251244 ...

  5. R语言使用table1包绘制(生成)三线表、使用单变量分列构建三线表、编写自定义函数在三线表中添加p值

    R语言使用table1包绘制(生成)三线表.使用单变量分列构建三线表.编写自定义函数在三线表中添加p值 目录

  6. R语言使用party包中的ctree函数构建条件推理决策树的流程和步骤、条件推理决策树是传统决策树的一个重要变体、条件推理树的分裂是基于显著性测试而不是熵/纯度/同质性度量来选择分裂

    R语言使用party包中的ctree函数构建条件推理决策树的流程和步骤(Conditional inference trees).条件推理决策树是传统决策树的一个重要变体.条件推理树的分裂是基于显著性 ...

  7. 三线表是什么?R语言使用table1包绘制(生成)三线表、使用单变量分列构建三线表、编写自定义三线表结构(将因子变量细粒度化重新构建三线图)、编写自定义函数在三线表中添加p值

    三线表是什么?R语言使用table1包绘制(生成)三线表.使用单变量分列构建三线表.编写自定义三线表结构(将因子变量细粒度化重新构建三线图).编写自定义函数在三线表中添加p值 目录

  8. R语言使用caret包构建随机森林模型(random forest)构建回归模型、通过method参数指定算法名称、通过ntree参数指定随机森林中树的个数

    R语言使用caret包构建随机森林模型(random forest)构建回归模型.通过method参数指定算法名称.通过ntree参数指定随机森林中树的个数 目录

  9. R语言使用caret包中的createFolds函数对机器学习数据集进行交叉验证抽样、返回的样本列表长度为k个

    R语言使用caret包中的createFolds函数对机器学习数据集进行交叉验证抽样.返回的样本列表长度为k个 目录

最新文章

  1. 华为发布面向2025十大趋势
  2. memcached客户端_对比Memcached和Redis,谁才是适合你的缓存?
  3. JVM指令:invokeSpecial/invokeVirtual/invokeStatic/invokeInterface/invokeDynamic方法调用指令
  4. C++字符串类型和数字之间的转换
  5. Netflix混沌工程手册Part 2:混沌工程原则
  6. rstudio 管道符号_R中的管道指南
  7. 正则-Strip函数
  8. 2022春节档新片预售总票房达1.08亿
  9. 不能编辑_解决cass9.0双击不能编辑文字和图块
  10. mysql 创建删除表_mysql创建删除表的的详细解析
  11. 《Python游戏趣味编程》标准IDE运行游戏代码的配置方法
  12. 【248天】跃迁之路——程序员高效学习方法论探索系列(实验阶段06-2017.10.11)...
  13. OSWatcher使用简介
  14. python全局变量定义_python全局变量和局部变量的概念
  15. 一个对象对应多个对象如何在一个界面里实现新增_谈MDM主数据管理系统设计和实现关键点...
  16. 自动控制原理 (二): 控制系统的微分方程
  17. 小爱同学app安卓版_小爱同学3.0版本下载-小爱同学3.0安装包下载v5.0.62 安卓最新版-2265安卓网...
  18. 误删除vmdk文件恢复办法
  19. python操作微信电脑版_python操作微信客户端:WechatPCAPI库实现自动化回复
  20. 那些大厂 HR 是怎么筛选简历的?

热门文章

  1. python小白从哪来开始-如何看待Python的由来?Python小白如何入门?(附教程)
  2. 投资30亿美元 IBM启动云计算大数据芯片研究计划
  3. 下载神器-IDM使用教程及下载
  4. OJ每日一练——输出绝对值
  5. 一下子Accepted不了吧
  6. C++模板——模板特化、分离编译
  7. mysql批量删除重复数据库_建站经验:sql语句快速删除重复内容之我见
  8. 六、Spring Boot整合Shiro
  9. Python基础教程之数据类型
  10. keil遇到FCARM - Output Name not specified, please check 'Options for Target - Utilities'解决方法