Go語言學習 0308 0309

2021-10-03 15:30:19 字數 1969 閱讀 8139

規則:

正數:原碼=反碼=補碼

負數:反碼=符號位不變,其他位取反

補碼=反碼+1

加法運算是補碼的運算

格式化列印輸出:

%d ,整數

%f ,小數–> %.2f

%s , 字串輸出

%v ,原始型別輸出

%q,%c , 將數值按照編碼表,輸出對應的字元,q的結果帶引號,c的結果不帶引號。

65–> a

97 -->a

變數需要顯示轉換,常量在編譯的時候會自動進行轉換。

go語言是強型別語言,有乙個特點就是,給變數賦的值必須要和變數的型別是一致的。

在有返回值的函式中,不允許將「最終的」return語句包含在if…else… 結構中,否則會編譯失敗。失敗的原因在於:go編譯器無法找到終止該函式的return語句。編譯失敗案例如下:

func

example

(x int

)int

else

}

switch i
與c語言相反,go語言不需要用break來明確退出乙個case;

只有在case中明確新增fallthrough關鍵字,才會繼續執行緊跟的下乙個case;

go語言中的迴圈語句只支援for關鍵字,而不支援while和do-while結構。

go語言中的for迴圈同樣支援continue和break來控制迴圈,但是它提供了乙個更高階的break,可以選擇中斷哪乙個迴圈,如下例:

jloop:

//....

for j :=

0;j<

5;j++

fmt.

println

(i)}

}

goto

在go語言中函式支援多重返回值和錯誤處理機制。

**需要注意的是:小寫字母開頭的函式只在本包內可見,大寫字母開頭的函式才能被其他包使用。**這個規則同樣適用於型別和變數的可見性。

對於輸入輸出類函式,不定引數的使用可以使**更加簡單易用。

不定引數是指函式傳入的引數的個數為不定數量。為了做到這點,首先需要將函式定義為接受不定引數型別:

func

myfunc

(args ...

int)

}

形如…type格式的型別只能作為函式的引數型別存在,並且必須是最後乙個引數。它是乙個語法糖(syntactic sugar),即這種語法對語言的功能並沒有影響,但是更方便程式設計師使用,通常來說,通過語法糖可以增加語法的可讀性。

從內部實現的機理來說,型別…type本質上是乙個陣列切片,也就是type,這也是為什麼上面的引數args可以用for迴圈來獲得每個傳入的引數。

優勢是:當我們在呼叫函式的時候,不需要用陣列切片例項。

2、 不定引數的傳遞

3、任意型別的不定引數

如果想傳遞任意型別的引數,可以指定型別為inte***ce{}。下面是go語言標準庫中的fmt.printf()

func

printf

(format string

,args ...

inte***ce

)

defer是在return之前執行的。

另外 需要注意的是,defer 語句的呼叫是遵照類似於棧的先進後出(電梯轎廂)的原則,即最後乙個defer語句將最先被執行。

用於報告和處理執行時錯誤和程式中的錯誤場景。

錯誤處理流程

recover() 函式用於終止錯誤處理流程。

& a 表示a變數儲存的位址,或者叫記憶體位址

1,閉包怎麼理解?

2,匿名函式有什麼作用?

3,錯誤處理?go中error型別的處理辦法以及型別轉換defer

4,defer 使用

GO語言學習

sudo apt get install golang但是用ubuntu的庫安裝有幾個不好的地方 因此建議不要使用ubuntu的庫安裝golang環境 golang社群的安裝指導 wget tar c usr local zxf go1.6.2.linux amd64.tar.gz設定環境變數,修改...

Go語言學習

執行 go run go main函式 打包 go build 用於測試編譯包,在專案目錄下生成可執行檔案 有main包 go install 主要用來生成庫和工具。一是編譯包檔案 無main包 將編譯後的包檔案放到 pkg 目錄下 gopath pkg 二是編譯生成可執行檔案 有main包 將可執...

Go語言學習九 Go語言指標

go 語言中指標是很容易學習的,go 語言中使用指標可以更簡單的執行一些任務。接下來讓我們來一步步學習 go 語言指標。我們都知道,變數是一種使用方便的佔位符,用於引用計算機記憶體位址。go 語言的取位址符是 放到乙個變數前使用就會返回相應變數的記憶體位址。package main import f...