簡單的go**優雅地解決棘手的併發問題
go 語言**包 :
fmt 字串格式化包
flag 接受和解析命令引數包
log 日誌輸出包,log.fatal(); 輸出致命錯誤
net/http 網路程式設計之http包
疑問:形式引數: r *http.request
asta 人名
xie 謝孟軍 beego作者,goweb程式設計作者
語言層面,組合代替繼承,介面實現無需申明
groutine 簡潔優雅
編譯速度快,跨平台
適合團隊協、後台高併發服務,唯一缺點也算是平台定位吧,就是有gc
語言層面支援併發、豐富的標準庫,內建強大的工具
go語言在伺服器程式設計、分布式系統、資料庫裡面作用很大,可以做底層到前端的任何工作,docker就是go寫的
goroot : go語言安裝的安裝路徑
gopath : 若干工作區目錄的路徑。是我們自己定義的工作空間
gobin : go程式生成的可執行檔案(executable file)的路徑
面試題: 設定gopath有什麼意義嗎?
gopath 全域性gopath,專案gopath
多個工程
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型別? 自定義的型別(結構體的名字,數字的名字)
陣列 大小固定、不能改變
切片 切片為陣列元素提供動態的大小的、靈活的視角,切片比陣列更常用
4. 流程控制語句
5. 方法和介面
方法即函式,方法只是個帶接受者引數的函式
方法引數的接收者
直接接收者
指標接收者
由於方法經常需要修改它的接收者,指正接受者比直接接收者更常用
介面型別: 是由一組方法簽名定義的集合
現在被指標、方法、介面搞得有點暈
目前看來,這可讀性真的是差了
空介面,用來傳遞不確定的引數型別,或者不確定的引數個數
6. 型別斷言
7. 內建介面
8. 併發 goroutine 是由go執行時管理的輕量級執行緒
sync go執行緒同步,一般不使用,而是使用通道來共享記憶體的
通道:通道是帶有型別的管道,你可以通過它用通道操作符 <- 來傳送或者接收值。
通道操作符 <- 箭頭就是資料流的方向
go web 程式設計,
實現、簡單的使用者的crud,登入態儲存....
對go大概 有了乙個了解,現在就是怎麼應用和熟悉?
寫demo
寫應用寫點web程式設計相關的吧
go撰寫風格:
每行結束不需要寫分號;
if/for 迴圈不需要以小括號包括起來
go 有內建的gofmt工具,能夠自動整理**多餘的空白、變數名稱對齊,並將對齊空格轉換成tab
go適合做什麼,為什麼那麼多人偏愛他
go build -x -n -v -a
go的指標可讀性差,注意看應用的場景怎麼樣
t type 型別
go 的內建包
fmt format fmt 格式化輸出
pkg package
程式的包申明一定要與父級目錄的名稱一致。
名稱首字母為大寫的程式石頭才可以被當前包外的**引用,否則只能被當前包內的其它**引用
庫原始碼檔案
命令原始碼檔案
Go學習筆記
使用關鍵字var定義變數,自動初始化為零值。如果提供初始化值,可省略變數型別。在函式內部,可用更簡略的 方式定義變數。空白符號 package main import fmt func test 2,0 函式內部 定義變數陣列data 0 data 1 data 2 並賦值0,1,2,且i 0 i,...
go學習筆記
那些打不倒你的,終將讓你變的更強 package main import fmt func main 輸出結果 num1的型別是 int,數值是 30 num2的型別是 int,數值是 40 name的型別是 string,數值是 zhangshang sum的型別是 int,數值是 30 1 2 ...
Go學習筆記
go語言型別宣告語句 一 宣告變數 var 基本資料型別 1.整型 基礎型別 變數的宣告 變數的字面值為整型 var a int 自動初始化為0 變數的賦值 a 100 var b 200 隱式宣告變數並初始化 var c int 300 顯式宣告型別的變數 d 400 自動推導變數的型別 w,z ...