Go學習筆記

簡單的go代碼優雅地解決棘手的併發問題html

go 語言代碼包 :
fmt 字符串格式化包
flag 接受和解析命令參數包
log 日誌輸出包,log.Fatal(); 輸出致命錯誤
net/http 網絡編程之http包前端

疑問:
形式參數: r *http.Request
asta 人名
xie 謝孟軍 beego做者,goweb編程做者web

Beego 構建完整的web項目

精彩評論:
go 簡潔 高效面試

  1. 語言層面,組合代替繼承,接口實現無需申明
  2. groutine 簡潔優雅
  3. 編譯速度快,跨平臺
  4. 適合團隊協、後臺高併發服務,惟一缺點也算是平臺定位吧,就是有GC

語言層面支持併發、豐富的標準庫,內置強大的工具
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 獲取遠程代碼包

go 基本語法

  1. 變量聲明 常量聲明
    變量命令小寫,常量命令首字符大寫

  2. 函數聲明
  3. 基本類型

bool
string
int 整形 int8 ...
uint 無符號整形 unit8 ...

byte unit8 的別名
rune int32 的別名

float32 float64
complex64 complex128

go語言中不一樣的數據類型項之間賦值時須要顯式轉換

fmt.Printf()
%T 數據類型
%v 原始值
%q 字符串值
%s 字符串值

指針
結構體 struct 就是一組字段field
結構體指針 可讀性是真的差了
數組

T類型? 自定義的類型(結構體的名字,數字的名字)

數組 大小固定、不能改變
切片 切片爲數組元素提供動態的大小的、靈活的視角,切片比數組更經常使用

  1. 流程控制語句
  2. 方法和接口
    方法即函數,方法只是個帶接受者參數的函數

方法參數的接收者
直接接收者
指針接收者
因爲方法常常須要修改它的接收者,指正接受者比直接接收者更經常使用

  • 是go語言裏面的指針操做符
    & 操做符是指定指針的引用

接口類型: 是由一組方法簽名定義的集合
如今被指針、方法、接口搞得有點暈
目前看來,這可讀性真的是差了

空接口,用來傳遞不肯定的參數類型,或者不肯定的參數個數

  1. 類型斷言
  2. 內置接口
  3. 併發 goroutine 是由Go運行時管理的輕量級線程
    sync go線程同步,通常不使用,而是使用信道來共享內存的
    信道:信道是帶有類型的管道,你能夠經過它用信道操做符 <- 來發送或者接收值。
    信道操做符 <- 箭頭就是數據流的方向 

  4. GO web 編程,
    實現、簡單的用戶的CRUD,登陸態保存....

對go大概 有了一個瞭解,如今就是怎麼應用和熟悉?
寫demo
寫應用
寫點web編程相關的吧

Python 是一種普遍使用的解釋型,高級編程,通用型編程語言
Go 是一種靜態強類型、編譯型、併發型,並具備垃圾回收功能的編程語言
PHP 是一種開源的通用計算機腳本語言,尤爲適用於網絡開發並可嵌入HTML中使用
======================================================================================================

Go撰寫風格:

  1. 每行結束不須要寫分號;
  2. if/for 循環不須要以小括號包括起來

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

程序的包申明必定要與父級目錄的名稱一致。
名稱首字母爲大寫的程序石頭才能夠被當前包外的代碼引用,不然只能被當前包內的其它代碼引用
庫源碼文件
命令源碼文件

=========================================================================================================

相關文章
相關標籤/搜索