golang包引用解析

环境变量配置如下:

C:\GoF:\workspace\go_home

vs code配置如下:

F:\workspace\go_homegolangsrcF:\workspace\go_home\srcpkgF:\workspace\go_home\pkgbingo intanll
F:\workspace\go_home
F:\workspace\go_home\src\test1F:\workspace\go_home\src\test2
test1test2golangpackagepackage
test
main.gopackage main

看例子, 以下是整个demo的文件结构:

F:\workspace\go_home\src\test\calculate\calculate.go

//calculate.go
package calculate

func Mysqrt(val float64) float64 {
	z := 0.0
	for i := 0; i < 1000; i++ {
		z -= (z*z - val) / (2 * val)
	}
	return z
}

F:\workspace\go_home\src\test\hello\hello.go

//hello.go
package hello

import "fmt"

func Hello() {
	fmt.Println("hello")
}

F:\workspace\go_home\src\test\main.go

//main.go
package main

import (
	"fmt"
	"test/calculate"	//这里import的是目录名, 不是包名字, 在golang中, 包名可以和目录名不一致的
	"test/hello"		//这里import的是目录名, 不是包名字, 在golang中, 包名可以和目录名不一致的
)

func main() {
	hello.Hello()		//注意注意注意: 这里应用的是包名, 不是目录名
	fmt.Println(calculate.Mysqrt(5))
}
importgolang

//注意注意注意: 这里应用的是包名, 不是目录名

这两个主要是要注意的, 总的来说是 import 的是包的路径, 引用包的东西是使用包名