最近接觸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