go語言基礎語法01天-1

2020-08-12 19:04:17

golang中文官方:https://golang.google.cn/

  • 官網中documentation和package需要重點關注

1,go和區塊鏈基礎

1.1 區塊鏈去中心化

「去中心化」解決了「資訊公正」的問題,徹底解決人與人之間的信任問題。

1.2 什麼是區塊

從最簡單的角度來說,比如建房子,它的基本單元結構就是磚塊;組成區塊鏈的基本單元結構稱爲區塊。每個區塊包含兩部分:區塊,記錄當前塊的元資訊;還有一個記錄實際數據的區塊體。

1.3 智慧合約

智慧合約解決了傳統合約中信任問題,大幅降低了信任成本

1.4 go語言的特性

  • 執行效率高
  • 擅長網路程式設計
  • 高併發
  • 跨平臺

1.5 Go語言目前主要涉及的領域有:

  • 區塊鏈開發
  • 高併發伺服器開發
  • 分佈式開發
  • 微服務開發
  • Web框架及應用開發。

2,go語言介紹和環境安裝

2.1 go語言是什麼

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

2.2 go語言優勢

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

2.3 go語言能幹什麼

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

2.4 環境安裝

2.4.1 window下Go語言環境的安裝

  • Go安裝包下載網址:https://www.golangtc.com/download
  • 有zip壓縮版和msi安裝版兩個按本下載。(這裏使用msi安裝版,比較方便)。
  • 執行msi安裝檔案,千萬不要在安裝路徑中出現中文,一路Next。(關於安裝路徑在這裏重點強調,安裝的位置以及不能出現中文名稱)

2.4.2 使用goLand開發工具

2.5 第一個go程式

2.5.1 個人使用GOLand來開發第一個go程式

window go1.15 msi版本下載地址:https://golang.google.cn/dl/go1.15.windows-amd64.msi

goland下載地址:https://www.jetbrains.com/go/download/download-thanks.html?platform=windows

2.5.1 新建一個project,開始輸入程式碼

package main

import "fmt"

func main()  {

	fmt.Print("hello word")

}
  • 第一行:每個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函數的括號內(注意括號也是在半形狀態下輸入的),並且用雙引號包裹起來(雙引號也是半形狀態下輸入的)

    2.5.2 程式碼執行

我們第一個GO程式已經寫完了,那麼我們寫的程式到底能否執行呢?是否有錯誤呢?下面 下麪我們執行我們的程式,程式的執行分爲兩步:

  • (1) 編譯 編譯的操作步驟:選中hello word.go檔案,右鍵--->run go build hello word.go
  • (2) 執行結果 先編譯成.exe檔案,後執行輸出結果如下:
GOROOT=C:\Go #gosetup
GOPATH=C:\Users\Admin\go #gosetup
C:\Go\bin\go.exe build -o C:\Users\Admin\AppData\Local\Temp\___go_build_hello_word_go.exe "C:/Users/Admin/go/src/study/hello word.go" #gosetup

C:\Users\Admin\AppData\Local\Temp\___go_build_hello_word_go.exe #gosetup
hello word
Process finished with exit code 0

     2.5.3 其他注意事項

現在我們已經將我們寫的第一個GO語言程式,執行成功了,但是還有以下幾點內容需要在給大家強調一下:

  1. 強制左花括號{的放置位置,如果把左花括號{另起一行放置,這樣做的結果是Go編譯器報告編譯錯誤。
  2. 每行程式碼佔一行。
  3. 如果我們在我們已經成功的程式中,在加入一行輸入,應該怎麼加呢?直接輸入fmt.Print("aaaaa"),然後直接執」Run」,發現並沒有新的內容輸出,原因是什麼?應該怎麼做?
  4. 關於換行輸出的問題,前面的輸出都沒有換行,那麼怎樣進行換行輸出呢?

2.6 學習資料

Go語言官網(需要fq):https://golang.org/

go中文社羣:https://studygolang.com

go中文線上文件:https://studygolang.com/pkgdoc