Golang零碎筆記-1

1.用Golang 擼了一個Http 服務,同時用PHP 的Swoole拓展也擼了一個Http服務。壓測測試其兩個性能的比較。(編譯的語言VS 弱類型解釋型語言,結果大概是3:1)git

swoole 實現的http 測試結果github

Go 實現的額http 測試結果golang

 

2.Go語言僅支持封裝,不支持多繼承(面向接口編程)編程

3.聲明數組是要先聲明其空間大小的,也可聲明可拓展數組,通常不使用數組,使用切片,map 數據結構比較多。數組

4.切片是數組的一種視圖,自己不存數據,能夠向後拓展,切片的區間截取是半開閉的,左邊是開,右邊是閉。數組能夠被叫作切片的底層數組,而切片也能夠被看做是對數組的某個連續片斷的引用。swoole

5.全部能被引用的包,必須放在 GOPATH  的src 目錄之下。一個目錄只能有一個包,一個包能夠分爲多個文件。數據結構

6.go get  能夠獲取github 上面的包,可是獲取不到的golang.org上面的包。可是的能夠經過安裝 gopm 來解決這個問題。函數

7.Runtime包中提供了幾個與goroutine有關的函數。Gosched()讓當前正在執行的goroutine放棄 CPU 執行權限。調度器安排其它正在等待的線程運行。性能

8.Golang 編程中,實例化了沒有被使用的變量,導入沒有使用的包,都會致使編譯不經過的。測試

9.沒有public private 等標識符號,Go裏面使用 首字母的大小寫來區分屬性的公開和私有。

10.方法或者內置屬性能夠返回多個變量,也能夠定義返回值的類型

代碼例子:

m := map[string]string{
"name":   "吳彥祖",
"age":    "43",
"adress": "香港",
}
if name, ok := m["name2"]; ok {
    fmt.Println(name)
} else {
     fmt.Println("值不存在")
} 

11.方法的參數能夠是 值傳遞也能夠是地址傳遞。值傳遞不會改變的 主體自己,地址傳遞會改變自己的類型。

12.傳統面向對象類的概念,在Golang是經過結構體的構建來實現的,繼承的方式,改用組合的形式。

相關文章
相關標籤/搜索