go語言初識——基礎語法

1、關鍵字

go一共有25個關鍵字

  • var和const :變量和常量的聲明
  • var varName type  或者 varName : = value
  • package and import: 導入
  • func: 用於定義函數和方法
  • return :用於從函數返回
  • defer someCode :在函數退出之前執行
  • go : 用於並行
  • select 用於選擇不同類型的通訊
  • interface 用於定義接口
  • struct 用於定義抽象數據類型
  • break、case、continue、for、fallthrough、else、if、switch、goto、default 流程控制
  • chan用於channel通訊
  • type用於聲明自定義類型
  • map用於聲明map類型數據
  • range用於讀取slice、map、channel數據

2、標識符

36個標識符

內建常量:true、false、iota、nil

內建類型:int、int8、int16、int32、int64、uint、uint8、uint16、uint32、uint64、uintptr、float32、

                  float64、complex64、complex128、bool、byte、rune、string、error

內建函數:make、len、cap、new、append、copy、delete、complex、real、imag、panic、recover

函數內部定義的標識符,只能在函數內部訪問。函數外部包括函數自身和自定義定義標識符,若首字母大寫,則可以被外部包和所在的包內訪問(即:類似於C語言public);若首字母小寫,則不能被外部包所訪問,只能坐在包內訪問。(即:類似於C語言private)程序由標識符、運算符、分隔符和各種標識符號最終組成。

3、註釋

單行  //

多行 /*  ...  */

4、基礎語法

一、package

  1. package是最基本的分發單位和工程依賴關係的體現
  2. 每個go文件開頭都必須要一個package聲明,表示源碼所在的包
  3. 要生成go語言可執行文件,必須要有main的package包,且包下必須有main()函數
  4. 同一個路徑下只能存在一個package,一個package可以拆成多個源文件

二、import

  1. import語句可以導入源代碼文件所依賴的package包
  2. 不能導入沒用到的 package,會報錯

原理:

     1、一個main導入多個包,包將被順序導入

     2、如果導入的包(包A)依賴其他包(包B),會先導入包B,初始化包B的變量和常量,調用init();再導入包A,重複以上動作,直到所有包都初始化完成,纔會初始化main,執行main函數

     3、以上過程中,如果一個包被導入多次,只會初始化一次

 別名:

     1、可以將導入的包設一個方便記憶的別名

     2、點(.) 別名的包,使用其函數時,可以不寫包名

     3、下劃線(_) 別名的包,只會調用其init()方法,不能調用其函數

三、基本數據類型

   1、整型:int、int8、int16、int32、int64、uint、uint8、uint16、uint32、uint64

   2、浮點型:float32、float64

   3、複數:complex64、complex128

   4、字符型:rune(爲整型),打印時需要轉爲string

   5、指針:uintptr

   6、字符串:string,默認爲utf-8格式

四、變量

   1、Go 語言變量名由字母、數字、下劃線組成,其中首個字母不能爲數字。

   聲明方式:

  •         指定變量類型   var  v_name  v_type = value
  •         根據值自行判斷   var  v_name = value
  •         省略var, 注意 :=左側的變量不應該是已經聲明過的,否則會導致編譯錯誤。    v_name := value
//類型相同多個變量, 非全局變量
var vname1, vname2, vname3 type
vname1, vname2, vname3 = v1, v2, v3

var vname1, vname2, vname3 = v1, v2, v3 //和python很像,不需要顯示聲明類型,自動推斷

vname1, vname2, vname3 := v1, v2, v3 //出現在:=左側的變量不應該是已經被聲明過的,否則會導致編譯錯誤


// 這種因式分解關鍵字的寫法一般用於聲明全局變量
var (
    vname1 v_type1
    vname2 v_type2
)

五、常量

常量是一個簡單值的標識符,在程序運行時,不會被修改的量。

常量中的數據類型只可以是布爾型、數字型(整數型、浮點型和複數)和字符串型。

常量可以用len(), cap(), unsafe.Sizeof()函數計算表達式的值。常量表達式中,函數必須是內置函數,否則編譯不過:

常量的數值可以當做任何數據類型來使用

聲明方式:同上

特殊常量:iota

1、iota只能在常量的表達式中使用。

2、每次 const 出現時,都會讓 iota 初始化爲0.

3、iota 在下一行增長,而不是立即取得它的引用。增長是按行數

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章