最近接觸go語言 發現和java的方法調用有些類似但又有自己的注意點
go的包我理解為則是隔離的最小模塊
先在src目錄下創建main.go文件 package為main,然后在src下創建module1目錄 ,在module1目錄下創建兩個文件packageStrut.go,packageStrut2.go package均為module1
創建后如下
1.同一個module下方法和聲明不能重復
例如packageStrut.go中聲明如下方法與結構
package module1 import "time" type People struct { UserName string PassWord string } func NowTime() time.Time { return time.Now() }
然后在packageStrut2.go中重復聲明會直接報錯
2.同一個包下面方法和聲明調用可以直接通過方法名
例如修改packageStrut2.go的方法直接調用packageStrut中NowTime方法,將上面的沖突packageStrut2中沖突的People修改為Person后沖突消失,新建的Person實例
3.調用不同的包下的方法和聲明只能調用方法名首字母大寫的方法
例如先將packageStrut2中的GetNanoTime()方法首字母改為小寫,然后在main.go中分別調用packageStrut的NowTime()方法和packageStrut2修改后的getNanoTime()方法 ,前者會成功,后者則會編譯報錯
類也是一致,如果將packageStrut2中的Person改為person ,則這個person只對同包下是可見的,編譯也會報錯