• golang的包导入import


     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!")
    
    
    
  • 相关阅读:
    C#遍历DataSet中数据的几种方法总结
    angularjs作用域
    SQL 语句日期用法及函数
    Sublime Text3 快捷键汇总
    AngularJS 最常用的功能
    C#中如何排除/过滤/清空/删除掉字符串数组中的空字符串
    AngularJS的指令用法
    [WCF REST] Web消息主体风格(Message Body Style)
    泛型
    语法补充
  • 原文地址:https://www.cnblogs.com/igoodful/p/11238841.html
Copyright © 2020-2023  润新知