????????泛型:
? ? ? ?拋錯誤異常? 實現error接口類型
? ? ? ? ? ? ? ? 用java語言解釋的話,實現類需要重寫error類型的抽象方法Error().這樣就可以自定義異常處理。
? ? ? ? ? ? ? ? 回到go語言,在Error()方法中用*argError 這樣一個指針類來充當error接口的實現類。
在f2()方法中定義返回值類型為error接口類型,return就可以使用&argError對象了。
?????????
?????????????????
? ? ? ????????? 程序的調用和結果:
? ? ? ? ? ? ? ? go關鍵字? 協程
? ?協程的創建
? ??1)聲明一個匿名函數
????????????????func(msg string){
? ? ? ? ? ? ? ? ? ? ? ? fmt.Println(msg)
? ? ? ????????? ? ?}? ? ?
????????????????
? ? ? ? 2) 匿名函數的調用
????????????????func(msg string){
? ? ? ? ? ? ? ? ? ? ? ? fmt.Println(msg)
? ? ? ? ????????}("going")
? ? ? ? 3)將匿名函數的調用封裝為協程。
????????????????? go func(msg string){
? ? ? ? ? ? ? ? ? ? ? ? fmt.Println(msg)
? ? ? ????????? ? ?}("going")?
? ??
?
? ? 協程的特點:
? ? ? ? ????????兩個協程間是并行運行的,每個協程都是一個獨立執行的單元。? ? ? 協程們可以并發和并行執行。
?
? ? ? ? 正確理解協程:
? ? ? ??????????運行main函數只是一個函數的調用,但是main函數本身運行在一個加了go關鍵字
的協程中,一般把main()稱作主協程。
? ? ? ? 錯誤理解: