go基礎內容總結

2021-09-26 20:50:10 字數 2208 閱讀 2229

最近學習了go語言,對基礎知識進行了一些總結

1.檔名小寫,長名時以下劃線分割,擴充套件名為go

2._空白識別符號,值會被拋棄。

3.常量的定義格式: const identifier [type] = value ,例如:const pi string = 3.14159在 go 語言中,你可以省略型別說明符 [type] ,因為編譯器可以根據變數的值來推斷其型別。

例如const pi = 3.14159

4.宣告變數的一般形式是使用 var 關鍵字:var identifier type

首先,它是為了避免像 c 語言中那樣含糊不清的宣告形式,例如: int* a, b; 。在這個例子中,只有 a 是

指標而 b 不是。如果你想要這兩個變數都是指標,則需要將它們分開書寫。

5.識別符號大寫字母開頭相當於public,小寫字母開頭相當於private。

6.運算子優先順序

7 ^ !

6 * / % << >> & &^

5 + - | ^

4 == != < <= >= >

3 <-

2 &&

1 ||

7.float不能直接用,只有float32和float64。

8.不同型別不可以同時使用 如int和int32。

9.當你在函式體內宣告區域性變數時,應使用簡短宣告語法 :=

例如:a := 1

10.for i := 0; i < 5; i++ ,它們之間使用分號 ; 相隔,但並不需要括號 () 將它們括起來。例如:

for (i = 0; i < 10; i++) ,這是無效的**!

11.if else 結構:取消表示式的(), 左大括號在上行,else要與if的右大括號為同一行

if  aft == ""  else
12.switch 匹配後,就自動結束了。不需要break

但是 fallthrough 關鍵字,可以實現多個匹配功能。

在case 後面,通過逗號,也能實現相關功能

13.目錄就代表包。乙個專案類,必定存在乙個main包,但是沒有main目錄名。可以存在多級目錄,import多級包,但是引用時,只使用最近一級包名

14.陣列var arr1 [5]int

切片var slice1 int = arr1[2:5]

切片的長度    就是它所包含的元素個數。

切片的容量    切片元素個數加原陣列切片結束位置自己及其之後元素個數

切片 s 的長度和容量可通過表示式 len(s) 和 cap(s) 來獲取

map:var map1 map[keytype]valuetype

15.函式:

func closefile()

函式被呼叫的基本格式如下:

pack1.function(arg1, arg2, …, argn)

函式過載是不被允許的

函式不能在其它函式裡面宣告(不能巢狀)

16.defer關鍵字:

defer 允許我們推遲到函式返回之前(或任意位置執行 return 語句之後)一刻才執行某個語句或 函式(為什麼要在返回之後才執行這些語句?因為 return 語句同樣可以包含一些操作,而不是單純地返 回某個值)。

17.結構體:

type identifier struct

18.工廠方法(建構函式):

ms := newstruct1

func newstruct1(n int, f float32, name string) *struct1

}19.方法:

func (ats atsfile) closefile()
20.錯誤處理

painc用法是:用於丟擲錯誤。

recover()用法是:將recover()寫在defer中,並且在可能發生panic的地方之前,先呼叫此defer的東西(讓系統方法域結束時,有**要執行。)當程式遇到panic的時候(當然,也可以正常的呼叫出現的異常情況),系統將跳過後面的**,進入defer,如果defer函式中recover(),則返回捕獲到的panic的值。

func testb(x int) 

}()var a [10]int

a[x] = 111 //當x為20時候,導致陣列越界,產生乙個panic,導致程式崩潰

}

go語言基礎總結

字串 var a hello a 0 b 字串是常量,可以訪問其位元組單元,但是不能修改某個位元組的值 字串尾部不包含null字元 與c 區分 基於字串建立的切片和原字串指向相同的底層字元陣列,同樣不能修改 指標結構體指標訪問結構體欄位仍然用.go語言沒有 與c 區分 a 12 b a b b go...

vue基礎內容總結(四)

每個 vue 應用都是通過用 vue 函式建立乙個新的 vue例項開始的 var vm new vue 選項 雖然沒有完全遵循mvvm 模型,但是 vue 的設計也受到它的啟發。當建立乙個 vue 例項時,可以傳入乙個選項物件。乙個 vue 應用由乙個通過 new vue 建立的根vue例項,以及可...

mysql學習總結 一 基礎內容

windowsnet start mysqllinux1 使用 service 啟動 service mysqld restart 2 使用 mysqld 指令碼啟動 etc inint.d mysqld restart 備註 檢視mysql埠是否已經使用,使用netstat anp 命令檢視伺服器...