簡單的go代碼優雅地解決棘手的併發問題html
go 語言代碼包 :
fmt 字符串格式化包
flag 接受和解析命令參數包
log 日誌輸出包,log.Fatal(); 輸出致命錯誤
net/http 網絡編程之http包前端
疑問:
形式參數: r *http.Request
asta 人名
xie 謝孟軍 beego做者,goweb編程做者web
精彩評論:
go 簡潔 高效面試
語言層面支持併發、豐富的標準庫,內置強大的工具
go語言在服務器編程、分佈式系統、數據庫裏面做用很大,能夠作底層到前端的任何工做,docker就是go寫的docker
GOROOT : GO語言安裝的安裝路徑
GOPATH : 若干工做區目錄的路徑。是咱們本身定義的工做空間
GOBIN : GO程序生成的可執行文件(executable file)的路徑數據庫
面試題: 設置GOPATH有什麼意義嗎?
GOPATH 全局GOPATH,項目GOPATH
多個工程 http://c.biancheng.net/view/88.html編程
GOPATH GO的工做區workspace ,須要利用工做區,去放置go語言的源碼文件source file,以及安裝install後的歸檔文件和可執行文件
source file 源碼文件
archive file 歸檔文件
executable file 可執行文件數組
命令源碼
包源碼服務器
可執行命令必須使用package main網絡
包名: 使用目錄文件名
新接觸的go命令:
go run
go test 測試代碼
go get 獲取遠程代碼包
變量聲明 常量聲明
變量命令小寫,常量命令首字符大寫
基本類型
bool
string
int 整形 int8 ...
uint 無符號整形 unit8 ...
byte unit8 的別名
rune int32 的別名
float32 float64
complex64 complex128
go語言中不一樣的數據類型項之間賦值時須要顯式轉換
fmt.Printf()
%T 數據類型
%v 原始值
%q 字符串值
%s 字符串值
指針
結構體 struct 就是一組字段field
結構體指針 可讀性是真的差了
數組
T類型? 自定義的類型(結構體的名字,數字的名字)
數組 大小固定、不能改變
切片 切片爲數組元素提供動態的大小的、靈活的視角,切片比數組更經常使用
方法參數的接收者
直接接收者
指針接收者
因爲方法常常須要修改它的接收者,指正接受者比直接接收者更經常使用
接口類型: 是由一組方法簽名定義的集合
如今被指針、方法、接口搞得有點暈
目前看來,這可讀性真的是差了
空接口,用來傳遞不肯定的參數類型,或者不肯定的參數個數
併發 goroutine 是由Go運行時管理的輕量級線程
sync go線程同步,通常不使用,而是使用信道來共享內存的
信道:信道是帶有類型的管道,你能夠經過它用信道操做符 <- 來發送或者接收值。
信道操做符 <- 箭頭就是數據流的方向
GO web 編程,
實現、簡單的用戶的CRUD,登陸態保存....
對go大概 有了一個瞭解,如今就是怎麼應用和熟悉?
寫demo
寫應用
寫點web編程相關的吧
Python 是一種普遍使用的解釋型,高級編程,通用型編程語言
Go 是一種靜態強類型、編譯型、併發型,並具備垃圾回收功能的編程語言
PHP 是一種開源的通用計算機腳本語言,尤爲適用於網絡開發並可嵌入HTML中使用
======================================================================================================
Go撰寫風格:
go 有內置的gofmt工具,可以自動整理代碼多餘的空白、變量名稱對齊,並將對齊空格轉換成Tab
go適合作什麼,爲何那麼多人偏心他 http://www.javashuo.com/article/p-vhicxnis-ht.html
============================================================
兩種源碼文件: 命令源碼文件,庫源碼文件
go build構建 庫源碼文件操做的結果會放到臨時目錄 GOCACHE=C:\Users\Administrator\AppData\Local\go-build,命令源碼文件操做的結果會放到源碼文件所在的目錄。構建的注意意義在於檢查和驗證。
go install 安裝: 庫源碼文件結果文件放到工做區的pkg目錄下,命令源碼文件結果文件放到bin目錄下
go build -x -n -v -a
go的指針可讀性差,注意看應用的場景怎麼樣
T type 類型
go 的內置包
fmt format fmt 格式化輸出
pkg package
程序的包申明必定要與父級目錄的名稱一致。
名稱首字母爲大寫的程序石頭才能夠被當前包外的代碼引用,不然只能被當前包內的其它代碼引用
庫源碼文件
命令源碼文件
=========================================================================================================