天天看點

GO語言入門1:基本資料類型一、GO文法結構二、語言基礎文法

一、GO文法結構

1.示例代碼 package main                                          //包聲明,必須出現在源檔案第一行,指明檔案處于哪個包   import "fmt"                                           //引入檔案中需要的封包件   func main() {                                          //檔案執行入口               //注釋格式,同普通C格式    fmt.Println("Hello, World!")                //主要代碼功能區 } ## 辨別符 1)當辨別符以  大寫字母  開頭,則可被外部包通路 2)當辨別符以  小寫字母  開頭,則僅可被内部包通路 ## 注意事項 1)“{”不能單獨放在一行,會出現運作時錯誤 2)檔案名與包名并無直接關系,并非需要一緻 3)同一個檔案夾下的檔案隻能有一個包名,否則編譯報錯 4)代碼子產品每行可以不寫分号,當同行有多句代碼時需要用分号間隔   2.GO代碼的執行 1)go run   檔案名       //執行代碼 2)go build 檔案名      //編譯生成二進制檔案  

二、語言基礎文法

1.标記:GO程式由多個标記組成,标記是代碼中可以拆解的最小的有意義的機關,如:關鍵字、辨別符、常量、字元串、符号等  如:fmt.Println("Hello, World!") 分解為:fmt   .    Println    (    "Hello, World!"     )   2.行分隔符 1)每行隻有一個語句的時候可以不寫任何分隔符 2)需同行寫多句代碼時,需用分号間隔   3.辨別符規範 1)由字母、數字、下劃線組成 2)第一個字元必須是字母或下劃線 3)關鍵字不能作為辨別符   4.字元串 1)字元串:是由雙引号括起的一段字元序列 2)轉義字元:換行符 \n、回車符 \r、tab鍵  \t、Unicode字元  \u、反斜杠  \\ 3)字元串拼接:使用“+”或“+=”可以完成字元串拼接 4)字元串是一種值類型,且值不可變,即建立某個文本後你無法再次修改這個文本的内容;更深入地講,字元串是位元組的定長數組。   5.變量 (1)單變量聲明 1)指定變量類型不指派,則變量預設為零(沒有初始化時系統預設的值) 如:var  name   type 各類型零值:數值類型:0、bool:false、字元串:“”、複雜資料類型:指針/數組/字典等:null 2)不指定變量類型,指定初值,根據初值自行判定資料類型 如:var  name  =  value 3)使用“:=”可以聲明新的變量,而不用使用var,但對已有變量指派時會報錯 如正确聲明: name1 :=  value   //name1從未被定義 如錯誤聲明:var  name2 = value2;name2 := value3 ##注意 := 操作符隻能用于函數體内部,不能使用者全局變量的聲明與指派 (2)多變量聲明 1)類型相同的多個變量聲明 如: var  name1,name2,name3   type; name1,name2,name3=value1,value2,value3 2)類型不同的多個變量聲明 如:var(name1  type1;name2  type2……) (3)值類型和引用類型 1)基本資料類型均屬于值類型:int、float、bool、string,直接指向記憶體在記憶體中的值 a. 可以通過print直接輸出變量值:fmt.Println(i) b. 可以通過&獲得變量位址:fmt.Println(&i) c. 将一個變量賦給另一個變量時,是對值進行了拷貝賦在了新的記憶體位址中 6.常量 (1)常量:在程式運作過程中不會被修改的量 如:const  name  [type]  =  value 顯式類型定義:const  b  string  ="abc" 隐式類型定義:const  b = "abc" 1)常量枚舉定義 const (     Unknown = 0     Female = 1     Male = 2 ) (2)iota:可以變化的特殊常量,系統自定義 iota 在 const關鍵字出現時将被重置為 0(const 内部的第一行之前),const 中每新增一行常量聲明将使 iota 計數一次(iota 可了解為 const 語句塊中的行索引)。   測試代碼

package main

import "fmt"

func main(){
	 fmt.Println("Hello, World!");
	 fmt.Println("Hello, World22!")
	 //轉義字元相關
	 /*fmt.Print("\n")
	 fmt.Print("\r")
	 fmt.Print("\t")
	 fmt.Print("\u")
     fmt.Print("\\")
     */
     //驗證省略var時必須聲明全新的變量
     //var vname1, vname2, vname3 = "1", "2", "3" // 和 python 很像,不需要顯示聲明類型,自動推斷
     
     //nvname1, nvname2, nvname3 := "1", "2", "3" // 出現在 := 左側的變量不應該是已經被聲明過的,否則會導緻編譯錯誤

     var i,j int;
     i = 1;
     j = i;
     fmt.Println(i);
     fmt.Println(j)
     fmt.Println(&i)
     fmt.Println(&j)
}
           

繼續閱讀