go语言怎么区分包、文件、文件夹?
比如有这么个文件:d:\workspace\www\go_work\src\project_01\hello.go
package main
import "fmt"
func main(){
fmt.Println("hello")
}
看教程说程序必须有一个main包,问题:
上面这个示例,文件名是hello.go
,里面package写的是main
,但是并没有什么实际的main
包存在,究竟包是指什么?好像也不是一个文件或文件夹,因为也没有main
这个文件或文件夹存在。
就拿 gorilla/websocket 这个包做事例,
下载到本地 src 后引用他
那么
gorilla/websocket
就是一个包, 包名和目录路径其实是一致的, 因为$GOPATH/src
底下都是可以算做包main.go
这个文件和package main
对于一个包来说不是必须的, 通常都是用*_test.go
这类的测试文件来跑函数,main.go
就是一个启动文件, 在 php 里面的地位相当于index.php
, 用它做入口,但是主体逻辑还是要放在各个包里