Golang import

来源:互联网 发布:mysql存储过程有什么用 编辑:程序博客网 时间:2024/06/13 04:06
Golang import 特殊用法

     Golang包的导入语法
     在写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”). 

          可以近似理解为把fmt所有方法引入到当前文件.如果这么看就相当于fmt这个包的所有方法都属于当前包,所以可以省略包名.
      2. 别名操作   别名操作顾名思义可以把包命名成另一个用起来容易记忆的名字
           import( f “fmt” )   别名操作调用包函数时前缀变成了重命名的前缀,即f.Println(“hello world”). 

          这个比较好理解,相当于python中的as关键字.
      3.  _操作   这个操作经常是让很多人费解的一个操作符,请看下面这个import
          import ( “database/sql” _ “github.com/ziutek/mymysql/godrv” ) 

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

         可以把"_"理解为丢弃,就是把要导入包的可见变量和函数全部丢弃,只执行默认的init()方法


     本文转自:http://studygolang.com/articles/4580

原创粉丝点击