【转】Golang- import 导入包的几种方式:点,别名与下划线

摘要:
当导入一个包时,它所有的init()函数就会被执行,但有些时候并非真的需要使用这些包,仅仅是希望它的init()函数被执行而已。即使用_操作引用包是无法通过包名来调用包中的导出函数,而是只是为了简单的调用其init函数()。

原文:https://blog.csdn.net/iteye_15425/article/details/82726595

--=--------------------------

包的导入语法

在写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函数()。
————————————————
版权声明:本文为CSDN博主「iteye_15425」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/iteye_15425/article/details/82726595

免责声明:文章转载自《【转】Golang- import 导入包的几种方式:点,别名与下划线》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SSH 远程登录以及免密登录总线(BUS)和计算机的字长下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

MIPS学习笔记(一)

写在前面   本文是根据"MIPS Assembly Language Programming CS50 Discussion and Project Book. Daniel J. Ellard"总结的。其中有大量的翻译文体以及个人的看法想法,当然,内容没有书上那么详尽。   这一章节会涉及MIPS的变量的声明、数据的输入输出、取地址、分支跳转语句(用以...

Linux向文件添加内容的几种方法

需求:向 file.txt 添加内容 "hello world" 方法1:文本编辑器 [root@linux test_shell]# vim file.txt 方法2:输出重定向 [root@linux test_shell]# echo "hello world" >> file.txt [root@linux test_shell]# c...

Delphi APP 開發入門(二)Android/iOS設定,Hello World

Delphi APP 開發入門(二)Android/iOS設定,Hello World 分享: Share on facebookShare on twitterShare on google_plusone_share  閲讀次數:9047 發表時間:2014/05/12 tags: 行動開發 教學 App Delphi XE6 Android...

Node与express开发

1.初识Express Express 网站上是这样介绍 Express 的: “精简的、灵活的 Node.js Web 程序框架,为构建单页、多页及混合的 Web 程序提供了一系列健壮的功能特性。 ”这究竟是什么意思呢?下面我们来逐一解读一下。 精简 这是 Express 最吸引人的特性之一。框架开发者经常会忘掉“少即是多”这一基本原则。Express...

Spyder——科学的Python开发环境

刚开始接触Python的时候,网上找到的资料基本上上来就是介绍Python语言,很少有对开发环境进行讲解的,但如果在学习的过程中不断练习,这样效率会更高,所以特意将一个Python的开发环境Spyder自带的入门教程翻译出来,希望可以帮助到和我有同样困惑的你。 个人水平有限,会有翻译不到位的地方,欢迎批评指正! Spyder是使用Python编程语言进行科...

【qt】【QString的诸多操作】

前言: qt的数据处理莫过于QString,QString对于字符串的操作多的数不胜数。下面博主就将常用的罗列出来,一起分享。 正文: 下面的操作具体为:追加,查找,删除,提取,分割,各种转换等等。 0.字符串长度:length QString str = "hello world"; int strNum = str.length();//11 1.追加...