1. 程式人生 > >Go語言特性學習

Go語言特性學習

進制 mon bsp 不定 port 學習 調度 defer 引入

  1. go沒有class
  2. go的package 類似類的概念,包中的方法如果想被外部訪問必須大寫
協程組成
  1. go邏輯處理器(和cpu數量有關)
  2. go調度器

異常處理

package main

import (
    "fmt"
)
func main() {
    f1()
    f2()
}
func f1(){
    fmt.Println("我是方法1")
    //拋出異常
    panic("我是拋出錯誤")
}
func f2(){
    fmt.Println("我是方法2")
}
+ 拋出捕獲
package main
import (
"fmt"
)
func main() {
    f1()
    f2()
}
func f1() {
    defer func() {
        
if err := recover(); err != nil { fmt.Println("我捕獲到一個錯誤:",err) fmt.Println("代碼繼續運行") } }() fmt.Println("我是方法1") //拋出異常 panic("我是拋出錯誤") } func f2() { fmt.Println("我是方法2") }
go的變量類型
  1. 值類型 :int float bool string 數組 結構體
  2. 引用類型 :指針 切片 管道 接口 map 函數
cgo 在go中調用c的類庫
cgo 不支持c++的類,因為c++沒有一個二進制接口規範,並且只支持c語言中的值類型和數據類型 go測試框架
  1. GoConvey 測試框架
  2. Gostub 打樁工具
  3. GoMock 假數據工具
  4. Monkey
Go函數的返回值
  • 返回值,要不都定義變量要不都不定義
Go接口不用引入包 Go ++ 都是放到操作數之後,沒有返回值不能用表達式

Go語言特性學習