最近接触go语言 发现和java的方法调用有些相似但又有本身的注意点java
go的包我理解为则是隔离的最小模块spa
先在src目录下建立main.go文件 package为main,而后在src下建立module1目录 ,在module1目录下建立两个文件packageStrut.go,packageStrut2.go package均为module1code
建立后以下blog
例如packageStrut.go中声明以下方法与结构get
package module1 import "time" type People struct { UserName string PassWord string } func NowTime() time.Time { return time.Now() }
而后在packageStrut2.go中重复声明会直接报错string
例如修改packageStrut2.go的方法直接调用packageStrut中NowTime方法,将上面的冲突packageStrut2中冲突的People修改成Person后冲突消失,新建的Person实例编译
例如先将packageStrut2中的GetNanoTime()方法首字母改成小写,而后在main.go中分别调用packageStrut的NowTime()方法和packageStrut2修改后的getNanoTime()方法 ,前者会成功,后者则会编译报错class
类也是一致,若是将packageStrut2中的Person改成person ,则这个person只对同包下是可见的,编译也会报错import