go語言學習筆記1------Go語言介紹

1.1GO語言是什麼

“Go是一種開源的程序設計語言,它意在使得人們能夠方便地構建簡單、可靠、高效率的軟件”(來自go官網golang.org)
程序員在開發程序,開發軟件時都會選擇一門編程語言,那麼我們應該怎樣進行選擇呢?可能有人會說,我們要選擇一門簡單的,容易學習的,而且開發效率高的,能夠在很短的時間內開發完成一個軟件,這樣老闆會非常的滿意,能夠升職加薪,Python語言或者Ruby語言就非常適合這種快速開發。但是問題是,用這種語言開發的軟件,當用戶量多了,運行的速度會非常慢,給人的感覺就是非常卡,大家想一下這種軟件還有人願意使用嗎?那可能又有同學說了,我們要學習運行速度快的編程語言,例如C或者是C++,但是這類編程語言學習難度是非常大的。那麼有沒有一種編程語言,學習非常簡單,開發速度非常快,開發出的軟件電腦運行速度非常快呢?有,就是我們今天開始學習的GO語言。GO 語言借鑑了Python等其它編程語言簡單,易學,生產效率高,同時GO語言專門針對多處理器(多核CPU)系統的程序進行了優化(讓每核CPU都能夠執行GO語言開發的程序),這樣使用GO語言開發的程序運行的速度可以媲美C或C++開發程序的速度。

1.2GO語言優勢

1:運行速度快,簡單易學
2:適合區塊鏈開發
3:跨平臺
4:豐富的標準庫(指令),Go目前已經內置了大量的庫,特別是網絡庫非常強大(開發飛秋軟件)
5:Go裏面也可以直接包含C代碼,利用現有的豐富的C庫
6:語言層面支持併發,這個就是Go最大的特色,天生的支持併發。所謂併發,所有正在運行的程序輪流使用CPU,每個程序允許佔用CPU的時間非常短(比如10毫秒),這樣用戶根本感覺不出來CPU是在輪流爲多個程序服務,就好象所有的程序都在不間斷地運行一樣。併發好處就是可以運行多個程序,並不卡頓。

Go併發

Go 在語言級別支持協程,叫goroutine。Go 語言標準庫提供的所有系統調用操作(包括所有同步IO操作),
都會出讓CPU給其他goroutine。這讓輕量級線程的切換管理不依賴於系統的線程和進程,也不需要依賴於CPU的核心數量。
有人把Go比作21世紀的C語言。第一是因爲Go語言設計簡單,第二,21世紀最重要的就是並行程序設計,而Go從語言層面就支持並行。同時,併發程序的內存管理有時候是非常複雜的,而Go語言提供了自動垃圾回收機制。
Go語言爲併發編程而內置的上層API基於順序通信進程模型CSP(communicating sequential processes)。這就意味着顯式鎖都是可以避免的,因爲Go通過相對安全的通道發送和接受數據以實現同步,這大大地簡化了併發程序的編寫。Go語言中的併發程序主要使用兩種手段來實現。goroutine和channel。

1.3GO語言能幹什麼

1:網絡編程,這一塊目前應用最廣,例如網站開發。
2:服務器編程,例如:處理日誌,處理文件。
3:區塊鏈相關方向的開發

1.4學習資料

Go語言官網(需要翻牆):https://golang.org/
go中文社區:https://studygolang.com
go中文在線文檔:https://studygolang.com/pkgdoc

1.5環境安裝

前面已經對GO語言做了一個簡單的介紹,相信大家也已經基本有所瞭解了,那麼我相信大家迫不及待的想學習GO語言了,但是我們在具體學習GO語言前,需要先安裝GO的開發環境,只有把GO的開發環境安裝好了,纔能有GO語言的指令來開發網站等等軟件。也就是所謂的環境安裝,就是將GO語言的指令都安裝在你的電腦上,那麼你在開發軟件的時候就可以直接用了。GO環境的安裝分爲windows系統的安裝和linux系統的安裝,我們基礎班先學習windows下的安裝,之後學習linux系統下Go環境的安裝。
Windows下GO語言的環境安裝步驟如下:
Go安裝包下載網址:https://www.golangtc.com/download
有zip壓縮版和msi安裝版兩個按本下載。(這裏使用msi安裝版,比較方便)。
運行msi安裝文件,千萬不要在安裝路徑中出現中文,一路Next。(關於安裝路徑在這裏可以給學生重點強調,安裝的位置以及不能出現中文名稱)

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