import别名/点下划线
(1)import关键字的作用:作用是导入该go源文件所依赖的package包。用在go源文件中,紧接在pakage后面的部分。
(2)只要在源文件中用到了的package包就必须导入,而没有用到的package就绝对不能导入。
(3)推荐使用import方式:(若有重复名称的包,则需要用别名来区分即可)
import (
"package1"
"package2"
"package3"
"package4"
)
(4)包导入顺序规则:每个包只会被导入一次,且依赖包按照出现顺序优先被导入。
若main包依赖包A,包A依赖包B。
则会先导入包B,导入包B就会先初始化包B的常量和变量,然后执行包B的init函数(如果有的话)。
B包导入完成后,就开始导入A包,同样会先初始化包A的常量和变量,然后执行包A的init函数(如果有的话)。
A包导入完成后,就开始导入main包,同样会先初始化main包的常量和变量,然后执行包A的init函数(如果有的话),最后执行main包中的main函数。

------------------------------------------------------------------------------------------------------------
  • 1、通用导入方式(推荐)

    import (
    "fmt"
    )

    然后我们就可以通过包名调用相应的函数或者变量了

    fmt.Println("Hello World!")

     

  • 2、别名import(推荐)
    在同一个go源码文件中导入多个包时,当导入的这些包的最后一个元素(包名)重复时,则无法编译,此时最佳选择就是给导入的包取一个不同的别名来解决问题,这是别名最大的用处。当然,有时候可能包的名字很长或者不容易记忆,然后你可以给这个包起个别名(比如短一点啊或者容易记忆啊),这也算是另一个用处。故有两大用处:一是避免包最后一个元素重名,二是简化包名称。

    import (
    f "fmt"
    )

    然后可以如下使用该包

    f.Println("Hello World!")
  • 3、下划线import(有必要时,则推荐)
    当我们import一个包的时候,它里面的所有init()函数都会被执行,但是有时候我们并不真正需要使用这些包,仅仅是希望它里面的init()函数被执行,这个时候,就可以使用下划线import了

    import (
    "database/sql"
    _ "github.com/go-sql-driver/mysql"
    )
  • 4、点import(听我的,不要用。因为不同包下面的一些函数、常量、变量、类型等对象很有可能重名)
    点import就是在import 的包前面加个".", 这个导入方式,在使用相应的包的函数或者变量的时候,可以省略包名
import (
. "fmt"
)
然后我们可以不用带包名前缀调用相应包的函数
Println("Hello World!")
												

golang的包导入import的更多相关文章

  1. 3.Golang的包导入

    1.golang的源码文件可以随意命名,但是属于同一个包的源文件必须声明 package base 2.golang的包引入规则 import ( "fmt" #系统包直接写名字 ...

  2. Golang自定义包导入

    # 文件Tree project -/bin -/pkg -/src -main.go -/test -test1.go -test2.go main.go package main import ( ...

  3. 理解Golang包导入

    Golang使用包(package)这种语法元素来组织源码,所有语法可见性均定义在package这个级别,与Java .python等语言相比,这算不上什么创新,但与C传统的include相比,则是显 ...

  4. [golang note] 包和导入

    package的作用        √ package是golang最基本的分发单位和工程管理中依赖关系的体现.        √ 每个golang源代码文件开头都拥有一个package声明,表示该g ...

  5. 包(package) 与 导入(import) 语句剖析

    A) 包(package):用于将完成不同功能的类分门别类,放在不同的目录下. B)命名规则:将公司域名翻转作为包名.例如www.vmaxtam.com域名,那么包名就是com.vmaxtam 每个字 ...

  6. 引入工程报包导入异常:import javax.servlet.annotation.WebFilter;

    引入工程报包导入异常:import javax.servlet.annotation.WebFilter; (2013-02-21 16:38:00)   分类: java 今天上午导入了一个项目,用 ...

  7. 【Python实战】模块和包导入详解(import)

    1.模块(module) 1.1 模块定义 通常模块为一个.py文件,其他可作为module的文件类型还有".pyo".".pyc".".pyd&qu ...

  8. IDEA 禁止自动导入引用包 取消import包

    http://www.oschina.net/question/2010061_226765 我想拷贝一小段代码,或者我就是不想引入拷贝来的包,我该怎么取消掉idea的自动导入import包呢? 找到 ...

  9. python相对包导入报“Attempted relative import in non-package”错误

    文章是从stackoverflow翻译过来的,原文地址:Relative imports for the billionth time 本文要在原理上解决  python当中相对包导入出现的问题. 问 ...

随机推荐

  1. mac版pycharm的字体和行间距设置

  2. Linux自动化工具之crontab (windows需要手动配置相关服务,具体百度)

    //有的shell解释器是/bin/tcsh而不是传统的/bin/bash.而且两者语法有些差异,注意避免.比如设置变量tcsh是set 变量 =`****`   1.crontab是什么,是linu ...

  3. springcloud之配置中心用法

    一.配置文件服务器server端 1.构建server端所需jar <dependencies> <dependency> <groupId>org.springf ...

  4. 第六章 Odoo 12开发之模型 - 结构化应用数据

    在本系列文章第三篇Odoo 12 开发之创建第一个 Odoo 应用中,我们概览了创建 Odoo 应用所需的所有组件.本文及接下来的一篇我们将深入到组成应用的每一层:模型层.视图层和业务逻辑层. 本文中 ...

  5. 机器学习二 逻辑回归作业、逻辑回归(Logistic Regression)

    机器学习二 逻辑回归作业   作业在这,http://speech.ee.ntu.edu.tw/~tlkagk/courses/ML_2016/Lecture/hw2.pdf 是区分spam的. 57 ...

  6. 【MFC 】关于对话框中的OnVScroll() 和 OnHScroll

    原文地址:[MFC 中]关于对话框中的OnVScroll() 和 OnHScroll()函数作者:Winters     对话框中的滑块,微调控件都会向OnVScroll() 和OnHScroll() ...

  7. python学习笔记3_数据载入、存储及文件格式

    一.丛mysql数据库中读取数据 import pandas as pdimport pymysqlconn = pymysql.connect( host = '***', user = '***' ...

  8. KOA 学习(六)superAgent

    原文地址 http://www.2cto.com/kf/201611/569080.html 基本请求 初始化一个请求可以通过调用request模块中适当的方法,然后使用.end()来发送请求,例如一 ...

  9. yum与rpm常用选项

    rpm常用的命令组合: rpm 1.对系统中已安装软件的查询-q:查询系统已安装的软件-qa:查询系统所有已安装包-qf:查询一个已经安装的文件属于哪个软件包-ql:查询已安装软件包都安装到何处-qi ...

  10. ssh实现免密码登录和文件传输

    一般的用户名密码认证不安全,很容易被暴力破解,还不方便:而大多数人都是选择使用 SSH 密钥认证,不仅安全还不用每次输密码 ssh密钥对 # 使用 ssh-keygen 生成非对称密钥,一路回车即可 ...