zoukankan      html  css  js  c++  java
  • 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!")
    
    
    
  • 相关阅读:
    link rel=”canonical”标签
    overflow:hidden导致元素高度增加的问题
    python读取字节中的位
    chrome extension 扩展开发中 popup 页面卡顿问题
    chrome extension打开新窗口
    禁止enter回车键出发页面的onsubmit事件
    ArgumentError("subject table for an INSERT, UPDATE or DELETE expected, got Column('id', Integer(), table=<user>, primary_key=True, nullable=False)."
    urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1076)>
    vite-v3-ts-0到0.8
    执行shell脚本无法访问 logs/catalina.out^M: 没有那个文件或目录
  • 原文地址:https://www.cnblogs.com/igoodful/p/11238841.html
Copyright © 2011-2022 走看看