1. 程式人生 > 其它 >Go語言(一)

Go語言(一)

一、Go語言的基本認識

二、基本語法結構

三、包的基本概念

四、Go程式碼執行方式

五、Go語言變數

六、資料型別

一、Go語言的基本認識

Go語言的優點

1、Go 語言保證了既能到達靜態編譯語言的安全和效能,又達到了動態語言開發維護的高效率,使用一個表示式來形容 Go 語言:Go = C + Python ,

說明 Go 語言既有 C 靜態語言程式的執行速度,又能達到了 Python 動態語言的快速開發。

2、總結就是,實現快 + 資源佔用低 + 任意環境都能跑,在很多場景都好使。

Go語言的特點

1、從 C 語言中繼承了很多理念,包括表示式語法,控制結構,基礎資料型別,呼叫引數傳值,指標等,也保留了和 C 語言一樣的編譯執行方式及指標

2、引入包的概念,用於組織程式結構,Go 語言的一個檔案都要歸屬於一個包,而不能單獨存在。

3、垃圾回收機制,記憶體自動回收,不需開發人員管理。

4、Go語言為併發而生:Go語言正是在多核和網路化的時代背景下誕生的,原生支援併發的程式語言。Go語言從底層原生支援併發,無須第三方庫,

開發人員可以很輕鬆地在編寫程式時決定怎麼使用 CPU 資源。

5、吸收了管道通訊機制,形成 Go 語言特有的管道 channel,通過管道channel , 可以實現不同的 goroutine 之間的相互通訊。Go語言的併發是基於 goroutine 的,

goroutine 類似於執行緒,多個 goroutine 中,Go語言使用管道(channel)進行通訊,channel是一種內建的資料結構,可以讓使用者在不同的 goroutine 之間同步傳送訊息。

6、函式可以返回多個值

舉例:

寫一個函式,實現同時返回 和,差

7、新的創新:比如切片 slice、延時執行 defer。

下載地址:

https://studygolang.com/dl

安裝配置:

https://studygolang.com/articles/6165

檢視安裝版本,有輸出安裝成功

二、基本語法結構

hello.go 檔案

讓我們來看下以上程式的各個部分:

1、第一行程式碼 package main 定義了包名。必須在原始檔中第一行指明這個檔案屬於哪個包。

2、下一行 import "fmt" ,匯入一個包,因為要用到包裡面的函式。匯入的包必須使用,不然會報錯,報錯內容imported and not used: "xxx","xxx" 表示包名。

3、下一行 func main(),用func定義一個函式,main 函式是每一個可執行程式所必須包含的,它是Go語言程式的入口函式,也即程式啟動後執行的第一個函式。

4、下一行Println() 可以將字串輸出到控制檯。

5、需要注意的是{不能單獨放在一行,不然會在執行時會產生錯誤。是因為go語言預設在每行結尾自動加上 ‘;’ 分號。

三、包的基本概念

1、基本概念

Go語言是使用包來組織管理原始碼的,任何原始碼檔案(go檔案)必須屬於某個包,同時原始碼檔案的第一行有效程式碼必須是package pacakgeName語句,

通過該語句宣告自己所在的包。Go語言中為我們提供了很多內建包,如 fmt、os、io 等。

2、包的幾個說明:

同一個目錄下的同級的所有go檔案應該屬於一個包;

包的名稱可以跟目錄不同名,不過建議同名;

一個Go語言程式有且只有一個main函式,他是Go語言程式的入口函式,且必須屬於main包,main函式沒有或者存在多個,進行編譯時都會報錯;

3、包的匯入

四、go程式碼執行方式

方式一:對原始碼編譯後再執行,執行流程如下圖:

命令如下:

1、在該原始檔目錄下,通過 go build 對 go 檔案進行編譯。可以指定生成的可執行檔名,在windows 下 必須是 .exe 字尾。

2、如果程式沒有錯誤,沒有任何提示,會在當前目錄下會出現一個可執行檔案(windows 下是.exe ),該檔案是二進位制碼檔案,也是可以執行的程式。

3、如果程式有錯誤,編譯時,會在錯誤的那行報錯。通過報錯,進行除錯

4、執行:

方式二:對原始碼直接 執行 go run 原始碼,Go 的執行流程如下圖

執行方式如下:

對兩種執行流程的方式的說明

1、如果我們先編譯生成了可執行檔案,那麼我們可以將該可執行檔案拷貝到沒有 go 開發環境的機器上,仍然可以執行

2、如果我們是直接 go run go 原始碼,那麼如果要在另外一個機器上這麼執行,也需要 go 開發環境,否則無法執行。

3、在編譯時,編譯器會將程式執行依賴的庫檔案包含在可執行檔案中,所以,可執行檔案變大了很多。

最後:

Go語言程式編寫的幾個簡單規則

1、go 檔案的字尾 xx.go

2、go 程式區分大小寫

3、go 的語句後,不需要帶分號

4、go 定義的變數,或者 import 包,必須使用,如果沒有使用就會報錯

5、go 中,不要把多條語句放在同一行,否則報錯

6、go 中的大括號成對出現,而且風格如下

func main() {

//語句

}

五、Go語言變數

1、變數的定義

定義變數的三種方式:

(1) 第一種:指定變數型別,聲明後若不賦值,使用預設值

(2) 第二種:根據值自行判定變數型別(型別推導)

(3)第三種:省略 var

注意 : 申明的變數必須使用,否則會報錯

2、多變數的宣告

方式一:

方式二:

方式三:


如何函式外宣告多個全域性變數:

3、變數使用的注意事項

(1)作用域內的資料值可以在同一類型範圍內不斷變化

(2)變數在同一個作用域(在一個函式或者在程式碼塊)內不能重名,可以重新賦值,但不能對同一個變數重新宣告

(3)變數的三要素,變數=變數名+值+資料型別

(4)Go語言的變數如果沒有賦初值,編譯器會使用預設值, 比如 int 預設值 0 string 預設值為空串,小數預設為 0