golang 學習筆記:第 1 節:GO 語言介紹

kuibatian發表於2019-11-15

1:GO語言是什麼

1.1 GO語言是什麼

“Go是一種開源的程式設計語言,它意在使得人們能夠方便地構建簡單、可靠、高效率的軟體”(來自go官網golang.org)

我們程式設計師在開發程式,開發軟體時都會選擇一門程式語言,那麼我們應該怎樣進行選擇呢?
可能有同學會說,我們要選擇一門簡單的,容易學習的,而且開發效率高的,能夠在很短的時間內開發完成一個軟體,這樣老闆會非常的滿意,能夠升職加薪,Python語言或者Ruby語言就非常適合這種快速開發。
但是問題是,用這種語言開發的軟體,當使用者量多了,執行的速度會非常慢,給人的感覺就是非常卡,大家想一下這種軟體還有人願意使用嗎?
那可能又有同學說了,我們要學習執行速度快的程式語言,例如C或者是C++,但是這類程式語言學習難度是非常大的。
那麼有沒有一種程式語言,學習非常簡單,開發速度非常快,開發出的軟體電腦執行速度非常快呢?有,就是我們今天開始學習的GO語言

GO 語言借鑑了Python等其它程式語言簡單,易學,生產效率高,同時GO語言專門針對多處理器(多核CPU,在這裡可以給學生看一下windows下的多核CPU,)系統的程式進行了優化(讓每核CPU都能夠執行GO語言開發的程式),這樣使用GO語言開發的程式執行的速度可以媲美C或C++開發程式的速度。

1.2GO語言優勢

1:執行速度快,簡單易學

2:薪水待遇高

3:適合區塊鏈開發
4:跨平臺
5:豐富的標準庫(指令),Go目前已經內建了大量的庫,特別是網路庫非常強大(開發飛秋軟體)
6:Go裡面也可以直接包含C程式碼,利用現有的豐富的C庫
7:語言層面支援併發,這個就是Go最大的特色,天生的支援併發。所謂併發,所有正在執行的程式輪流使用CPU,每個程式允許佔用CPU的時間非常短(比如10毫秒),這樣使用者根本感覺不出來CPU是在輪流為多個程式服務,就好象所有的程式都在不間斷地執行一樣。併發好處就是可以執行多個程式,並不卡頓。

1.3 GO語言能幹什麼

1:網路程式設計,這一塊目前應用最廣,例如網站開發。
2:伺服器程式設計,例如:處理日誌,處理檔案。(在網站開發的過程中都會涉及到)
3:區塊鏈開發

2:環境安裝

前面已經對GO語言做了一個簡單的介紹,相信大家也已經基本有所瞭解了,那麼我相信大家迫不及待的想學習GO語言了,但是我們在具體學習GO語言前,需要先安裝GO的開發環境,只有把GO的開發環境安裝好了,才能有GO語言的指令來開發網站,飛秋等等軟體。也就是所謂的環境安裝,就是將GO語言的指令都安裝在你的電腦上,那麼你在開發軟體的時候就可以直接用了。GO環境的安裝分為windows系統的安裝和linux系統的安裝,我們先學習windows下的安裝,到專案可以再學習linux系統下Go環境的安裝。

Windows下GO語言的環境安裝步驟如下:
Go安裝包下載網址:https://golang.google.cn/dl/
有zip壓縮版和msi安裝版兩個按本下載。(這裡使用msi安裝版,比較方便)。
執行msi安裝檔案,千萬不要在安裝路徑中出現中文,一路Next。(關於安裝路徑在這裡可以給學生重點強調,安裝的位置以及不能出現中文名稱)

title
點選下載
title
開始安裝
title

title

如果你是其他系統請參考
各個系統下Go 語言環境安裝

3:第一個GO程式

1:選擇--->新建 檔案

Go 語言原始檔的擴充套件是 .go

注意:程式名稱,和程式儲存位置不能輸入中文
2:新建完成後,拖入編輯器開始輸入程式碼。

下載安裝ide編輯器Gogland,自行下載破解即可

title

第一行:每個Go原始碼檔案的開頭都是一個package宣告,表示該Go程式碼所屬的包。

GO語言中是通過包來對程式碼進行管理的。那麼什麼是包呢?我通過一個例子來解釋一下包的概念。例如:有一家公司叫“京東“”,該公司有一個專案叫“京東網上商城”,該專案下面有管理“客戶資訊”的程式碼,另外一家公司叫“淘寶”,該公司也有一個專案叫“淘寶網上商城”,該專案下面也有管理的“客戶資訊”的程式碼,我開發的“客戶管理軟體”,既要用到“京東”的客戶資訊管理程式碼,也要用到“淘寶”的客戶資訊管理程式碼,為了能夠很好的區分,我們在使用時必須寫清楚,客戶的資訊管理程式碼到底是來自哪個商城,所以我可以這樣寫“import京東”,表示所使用的“客戶資訊程式碼”是來自“京東”的,那麼“京東”就是一個標識,也就是包。所以說,包就是一個標識,標誌著著你寫的GO程式碼來自哪.這樣程式碼管理非常清晰,使用也非常方便。
那麼後面隨著我們學習的深入,學習的程式碼也越來越多,我們給大家去講解怎樣自己建立包,來管理程式碼。建立包用到的就是package.
但是,不管你建立多少個包,要想讓程式執行,必須包含一個main包。如果缺少該包,程式是無法執行的。

第三行程式碼:import表示匯入,“fmt”是包名.

不管是使用我們自己定義的包還是GO自帶都是通過import匯入的,“fmt”是GO自帶的包,該包 包含了怎樣將資訊列印在電腦螢幕上。注意包名要用“”表示。

第五行程式碼:表示程式的入口,程式就是從該位置開始執行的,就像是教室的門口一樣,注意該行程式碼是固定的寫法,func 與main之間必須有空格,同時main後面必須帶小括號,後面的一對大括號表示要完成的具體工作,也就是完成具體任務的程式碼必須寫在一對大括號內。
func表示後面跟著的main是一個函式,函式必須有一對小括號。什麼是函式呢?現在大家可以先理解與我們在數學中學到的函式是一樣的,都是實現某個具體的功能,例如我們學習的三角函式等。Main函式實現的就是入口功能。再次強調一下,GO語言中的函式前面必須加上func這個單詞,而且函式名稱後面必須跟一對小括號。

第六行程式碼:就是使用了fmt包(注意具體使用的時候不需要加上雙引號)中的Print函式,將要“hello go” 列印在螢幕上。
這行程式碼要注意的是,fmt包與Print函式之間是用.(點連線的),該點是在半形輸入法狀態下輸入,同時Print函式第一個字母P是大寫的,不能寫成小寫,也就是說GO語言是區分大小寫的,有很多同學在這裡容易出錯。將要輸出的資訊寫在Print函式的括號內(注意括號也是在半形狀態下輸入的),並且用雙引號包裹起來(雙引號也是半形狀態下輸入的)

3:程式碼執行
我們第一個GO程式已經寫完了,那麼我們寫的程式到底能否執行呢?是否有錯誤呢?下面我們執行我們的程式,程式的執行分為兩步:
(1)編譯
編譯的操作步驟:點選 “編譯” 選單,選擇 “Build” (或者直接按快捷鍵Ctrl+B).編譯的目的是檢查我們寫的程式碼是否出錯,如果沒有出錯,那麼會提示“成功”,並且在我們程式所在的目錄生成一個.exe檔案,該檔案就是可執行檔案。如果出錯那麼會顯示錯誤資訊,並且不會生成.exe檔案
(2)執行
編譯操作完成後,我們就可以執行我們的程式碼了,選擇“編譯”選單中的”Run”,執行。執行的就是編譯所生成的.exe檔案。這時,有同學可能就會問,如果我們不執行“Build”,直接執行”Run”,可以嗎?不可以,因為不執行”Build”就無法生成”.exe”檔案,那麼也就無法執行。最後,我們為了方便高效可以選擇“Run”,這個選項,將編譯與執行放在一起操作。

4:其它注意事項
現在我們已經將我們寫的第一個GO語言程式,執行成功了,但是還有以下幾點內容需要在給大家強調一下:
(1)強制左花括號{的放置位置,如果把左花括號{另起一行放置,這樣做的結果是Go編譯器報告編譯錯誤。
(2)每行程式碼佔一行。
(3)如果我們在我們已經成功的程式中,在加入一行輸入,應該怎麼加呢?直接輸入fmt.Print("aaaaa"),然後直接執”Run”,發現並沒有新的內容輸出,原因是什麼?應該怎麼做?
(4)關於換行輸出的問題,前面的輸出都沒有換行,那麼怎樣進行換行輸出呢?

5:總結
對第一個GO程式進行總結。

學習資料
Go語言官網(需要翻牆):https://golang.org/
go中文社群:https://studygolang.com
go中文線上文件:https://studygolang.com/pkgdoc

相關文章