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是經過結構體的構建來實現的,繼承的方式,改用組合的形式。