GO基礎學習(三)

2021-08-20 02:13:56 字數 922 閱讀 5654

torget:

1. 型別轉化

2. 介面

3. 錯誤處理

4. 開發工具

5. 語法

6. 標準庫

kno:

1. 型別轉化

判斷變數型別: reflect.typeof(d)

型別轉化: type_name(d)

列印輸出: 使用printf()

2. 介面

提供了另一種資料型別,把所有的具有共性的方法定義在一起,任何其他型別只要實現了這些

方法就是實現了這些介面.

/* 介面函式 */

// 格式

/*定義介面:

type 介面名 inte***ce

介面函式

func ("引數" 結構體) "介面內部函式名" 返回值型別

呼叫介面:

宣告:var  新介面名  (已定義)介面名

傳參:   新介面名 = new(引數)

呼叫介面內方法:

新介面名.方法名()

*/3. 錯誤處理

// 方法一:

// 使用new方法返回err型別

var err error = errors.new("new error")

// 呼叫介面方法

fmt.println(err.error())

// 方法二:

// 採用fmt.errof 將資訊轉化為error資訊

err = fmt.errorf("%s","the error test fmt.errorf")

fmt.println(err.error())

// 方法三:

// 自定義的方式實現error的乙個diverror結構體

err = &diverror

fmt.println(err.error())

Go基礎學習 Reciver

go是一門地地道道的物件導向的語言,但是他沒有大部分物件導向語言的關鍵字class,不過這並不影響這門優秀的語言發揮物件導向的特性。go語言通過struct關鍵字來定義乙個類,在定義時,僅僅定義了字段,並沒有定義函式,例如 定義乙個person類,並指定姓名和年齡屬性,但是無法指定test方法 行為...

Go基礎學習 map

無序的基於key value的資料結構 內部使用雜湊表 hash 實現 var m1 map string int 沒有初始化 沒有在記憶體中開闢空間 m1 make map string int,10 要估算好該map容量,避免在程式執行中再動態擴容 m1 tiezhu 12m1 tiedan 3...

Go基礎學習 defer

defer延遲函式總是在異常panic或者正常return前返回 defer執行順序按照先入後出的原則,即先入棧的最後執行 但是會先把引數壓入棧,具體執行會在函式結束前 當defer函式中存在函式時會先執行裡面的函式 defer函式呼叫的引數當存在閉包時,會從外面拿取該引數的最新的值 defer常常...