package用来管理维护golang工程的组织结构,用来分类及隔离 变量、定义数据结构、方法、函数的有效手段
特性如下
1.类似java中的Class(当然有人会说struct才像,其实看你从那个角度去看),我的理解是,变量、方法、函数都是被package区分隔离开来的,例如同名变量、方法等都可以定义,并且被有效隔离
2.packge以目录为单位管理,一个目录下的多个go文件必须是属于同一个package
3.不同目录或子目录理论上可以定义同名package(例如 package apkg),但是实际使用中是绝对不提倡的,会引发如下问题
a. 首先这样做会导致包管理看起来很混乱,阅读差,维护困难
b.apkg定义在不同目录虽然可以,但是出现在同一个package都被引用时,会编译报错
c.以b叙述情况为前提,非要同一个packge中引用,该怎么办,只需要引用package时给一个别名,由此引申,如果引用其他不同项目的package出现同名,也可以这样做
语法: import aaa "xxprj/xx目录/abc"
4. package 引用时,可以给别名 例如
定义package: package abc
引用时可以有两种方式:
import "xxprj/xx目录/abc"
import aaa "xxprj/xx目录/abc"