首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
md5
datetime
tree
export
heatmap
input
substring
metadata
nodejs
audio
request
hashset
random
merge
cSharp
python
int
buffer
solr
express
byte
web3
emoji
bitmap
python2
bash
match
fetch
perl
c语言
hashcode
httprequest
window
php5
require
client
javascript
default
dockerfile
expression
object
php
eval
format
php7
const
list
vbscript
cpython
settings
flutter
less
integer
uri
chat
split
string
plugins
utf-8
golang
hook
spring
regex
post
select
tags
include
controller
loops
java
heap
cPlusPlus
ip
dll
blob
netty
scala
instance
keyword
当前位置:
开发笔记
>
编程语言
> 正文
Golang-import导入包的语法(转)
作者:午夜呻吟的诱惑 | 来源:互联网 | 2023-05-18 11:55
Golang-import导入包的语法一包的导入语法在写Go代码的时候经常用到import这个命令用来导入包文件,看到的方式参考如下:import(fm
Golang- import 导入包的语法
一 包的导入语法
在写Go代码的时候经常用到import这个命令用来导入包文件,看到的方式参考如下:
import(
"fmt"
)
然后在代码里面可以通过如下的方式调用
fmt.Println("hello world")
上面这个fmt是Go语言的标准库,他其实是去GOROOT下去加载该模块,当然Go的import还支持如下两种方式来加载自己写的模块:
相对路径
import "./model" //当前文件同一目录的model目录,但是不建议这种方式import
绝对路径
import "shorturl/model" //加载GOPATH/src/shorturl/model模块
上面展示了一些import常用的几种方式,但是还有一些特殊的import,让很多新手很费解,下面是三种导入包的使用方法。
1.
点操作
有时候会看到如下的方式导入包 import( . “fmt” )
这个点操作的含义就是这个包导入之后在你调用这个包的函数时,你可以省略前缀的包名,也就是前面你调用的fmt.Println(“hello world”) 可以省略的写成Println(“hello world”)
2.
别名操作
别名操作顾名思义可以把包命名成另一个用起来容易记忆的名字
import( f “fmt” ) 别名操作调用包函数时前缀变成了重命名的前缀,即f.Println(“hello world”)
3.
_操作
这个操作经常是让很多人费解的一个操作符,请看下面这个import
import ( “database/sql” _ “github.com/ziutek/mymysql/godrv” )
_操作其实只是引入该包。当导入一个包时,它所有的init()函数就会被执行,但有些时候并非真的需要使用这些包,仅仅是希望它的init()函数被执行而已。这个时候就可以使用_操作引用该包了。即使用_操作引用包是无法通过包名来调用包中的导出函数,而是只是为了简单的调用其init函数()。
二 包的导入过程说明
程序的初始化和执行都起始于main包。如果main包还导入了其它的包,那么就会在编译时将它们依次导入。有时一个包会被多个包同时导入,那么它只会被导入一次(例如很多包可能都会用到fmt包,但它只会被导入一次,因为没有必要导入多次)。当一个包被导入时,如果该包还导入了其它的包,那么会先将其它包导入进来,然后再对这些包中的包级常量和变量进行初始化,接着执行init函数(如果有的话),依次类推。等所有被导入的包都加载完毕了,就会开始对main包中的包级常量和变量进行初始化,然后执行main包中的init函数(如果存在的话),最后执行main函数。下图详细地解释了整个执行过程:
通过上面的介绍我们了解了import的时候其实是执行了该包里面的init函数,初始化了里面的变量,_操作只是说该包引入了,只初始化里面的init函数和一些变量,不能通过包名来调用其它的函数,这有什么用呢?往往这些init函数里面是注册自己包里面的引擎,让外部可以方便的使用,就很多实现database/sql的引起,在init函数里面都是调用了sql.Register(name string, driver driver.Driver)注册自己,然后外部就可以使用了。
尽量不要用 . import,如果名字太长了用 别名 代替
golang
import
go
文件
int
database
sql
git
mysql
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
byte
golang 解析磁力链为 torrent 相关的信息
其实通过http请求已经获得了种子的信息了,但是传播存储种子好像是违法的,所以就存储些描述信息吧。之前python跑的太慢了。这个go并发不知道写的有没有问题?!packag ...
[详细]
蜡笔小新 2023-10-11 04:54:46
bash
解决Docker中volume的权限问题的方法
在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ...
[详细]
蜡笔小新 2023-12-14 18:48:02
int
在类中定义数组时出错 - Error on defining arrays in class
Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ...
[详细]
蜡笔小新 2023-12-14 17:38:12
byte
数据库的存储结构及其重要性
本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ...
[详细]
蜡笔小新 2023-12-14 16:00:02
byte
SpringBoot yml 配置 多配置文件,开发环境,生产环境配置文件分开
原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ...
[详细]
蜡笔小新 2023-12-14 12:39:13
byte
baresip android编译、运行教程1语音通话
本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ...
[详细]
蜡笔小新 2023-12-14 10:53:48
perl
Hyperledger Fabric外部链码构建与运行的开发笔记
本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ...
[详细]
蜡笔小新 2023-12-13 21:47:39
int
解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ...
[详细]
蜡笔小新 2023-12-13 19:02:44
fetch
sklearn数据集库中的常用数据集类型介绍
本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ...
[详细]
蜡笔小新 2023-12-13 17:45:15
int
Golang条件编译的必要性及实现方法
本文介绍了在多平台下进行条件编译的必要性,以及具体的实现方法。通过示例代码展示了如何使用条件编译来实现不同平台的功能。最后总结了只要接口相同,不同平台下的编译运行结果也会相同。 ...
[详细]
蜡笔小新 2023-12-13 09:38:06
int
PDO MySQL
PDOMySQL如果文章有成千上万篇,该怎样保存?数据保存有多种方式,比如单机文件、单机数据库(SQLite)、网络数据库(MySQL、MariaDB)等等。根据项目来选择,做We ...
[详细]
蜡笔小新 2023-12-12 10:25:39
int
解决.net项目中未注册“microsoft.ACE.oledb.12.0”提供程序的方法
在开发.net项目中,通过microsoft.ACE.oledb读取excel文件信息时,报错“未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序”。本文提供了解决这个问题的方法,包括错误描述和代码示例。通过注册提供程序和修改连接字符串,可以成功读取excel文件信息。 ...
[详细]
蜡笔小新 2023-12-11 15:08:02
fetch
如何使用PHP代码将表格导出为UTF8格式的Excel文件
本文介绍了如何使用PHP代码将表格导出为UTF8格式的Excel文件。首先,需要连接到数据库并获取表格的列名。然后,设置文件名和文件指针,并将内容写入文件。最后,设置响应头部,将文件作为附件下载。 ...
[详细]
蜡笔小新 2023-12-11 00:29:33
buffer
认真一点学 Go:18. 并发
收录于《Go基础系列》,作者:潇洒哥老苗。>>原文链接学到什么并发与并行的区别?什么是Goroutine?什么是通道?Goroutine如何通信?相关函数的使用?sel ...
[详细]
蜡笔小新 2023-10-13 11:30:32
int
golang 文件导入数据追加sheet
funcReadXlsx(c[]CmdbTest,SheetNamestring)error{打开文件,如果文件不存在创建,存在就打开path:.cm ...
[详细]
蜡笔小新 2023-10-12 19:54:33
午夜呻吟的诱惑
这个家伙很懒,什么也没留下!
Tags | 热门标签
md5
datetime
tree
export
heatmap
input
substring
metadata
nodejs
audio
request
hashset
random
merge
cSharp
python
int
buffer
solr
express
byte
web3
emoji
bitmap
python2
bash
match
fetch
perl
c语言
RankList | 热门文章
1
Maps Android API:授权失败
2
数组属于一种原生类吗_瘢痕有很多种类型,你的瘢痕到底属于哪一种你知道吗?...
3
uniapp判断客户端环境是 Android还是iOS系统
4
【Hack.lu2017】FlatScience
5
二分查找法 递归和非递归
6
jsdocument.documentElement document.body
7
Erlang算法一章:快速排序
8
android studio环境下创建menu问题(标题栏显示问题)
9
FM足球经理2012如何设置一套强悍的阵型(包括球员的个人设置)?
10
Spring_总结_03_装配Bean(四)_导入与混合配置
11
如何查看电脑系统版本_腾讯云服务器系统版本怎么看?Windows和Centos版本怎么选?...
12
LeetCodeOJ——MinimumDepthofBinaryTree
13
Google地图搜索的触角伸向月球
14
this prototype 闭包 总结
15
linux开发板推荐
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有