import 导入包,包名是从 GOPATH 开始计算的路径,使用 / 进行路径分隔;

在使用IDE时,不用手动import包,例如使用 fmt 包,在敲入 fmt. 时,编译器会警告,此时敲回车,包会被自动 import

import ( 常见操作:"fmt" //fmt是Go的标准库,去GOROOT/src下加载该模块 相对路径:"./model" //当前文件同一个目录的model目录,但不建议这种方式import 绝对路径:"shorturl/model" //加载GOPATH/src/shortul/model 模块 点操作:. "fmt" //点操作含义是这个包导入之后,在调用这个包函数时,可省略前缀的包名,如Println(12),不建议这样使用 _ 操作:_ "github.com/mattn/go-sqlite3" // _ 操作其实只是引入该包,当导入一个包时,它所有的 init() 函数就会被执行,但有些时候并非真的需要使用这些包,仅仅是希望它的 init() 函数被执行而已,这个时候就可以使用 _ 操作引用该包了。)
package mainimport (	"fmt"	_ "golang_mainInit_Src/initmaintest1"	_ "golang_mainInit_Src/initmaintest2")编译失败提示:c:/go/bin/go.exe build [C:/golang/src/golang_mainInit_Src]main.go:5:2: cannot find package "golang_mainInit_Src/initmaintest1" in any of:	c:\go\src\golang_mainInit_Src\initmaintest1 (from $GOROOT)	C:\Users\zhang\go\src\golang_mainInit_Src\initmaintest1 (from $GOPATH)

import 是用一个独一无二的字符串路径来指向包,而包的导入路径是基于工作目录的,因为 go 会在工作目录的 src 下查找包,即在 GOROOT(或GOAPTH)/src 下找。

如果,F:/TestGo/ 是我的工作目录,则需要在 GOPATH 中添加此为工作目录源码需要放在工作目录的 src 目录中,import 会搜索工作目录下的 src 的子目录F:/TestGo/F:/TestGo/src/thirdlib/lib1/hello.go  package hello1F:/TestGo/src/thirdlib/lib2/world.go  package hello2F:/TestGo/src/main.go {    package main    import (    	"thirdlib/lib1"    	"thirdlib/lib2"    )    func main() {        hello1.SayHello()        hello2.SayHello()    }}1. import 导入的参数是路径,而非 “包名”;2. 尽管习惯将“包名”和“目录名”保证一致,但这不是强制规定;3. 在代码中引用包成员时,使用 “包名” 而非 “目录名”;4. 至于“文件名”(扩展名为 .go),更没啥限制;5. 同一目录下,所有源文件必须使用“相同的包名称”,因为导入时使用绝对路径,所以在搜索路径下,包必须有唯一路径,但无需是唯一名字;