Go學習筆記

2022-05-17 15:29:26 字數 2383 閱讀 5614

簡單的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 ...