「Go 語言教程」 Go 語言基礎語法

2020-12-25 萬能的華哥Dean
Go 語言教程

最原始的語言,從人類使用的手語,到語音表達;從英語到漢語,以及到計算機能識別的各種程式語言,每個語言都有自己的語法。語法就如同大家相互的約定,以便在溝通交流,信息同步的時候,有一個通信的標準,可以相互傳達準確的信息,而不會因為相互的認識不一致導致的問題。那麼Go語言也是類似的。Go語言的基礎語法主要由這幾個方面構成,Go語言的關鍵字,Go語言的標識符,行分隔符回車,變量聲明分割的空格,注釋,以及標記。

1 Go 語言的關鍵字

1.1 關鍵字和保留字

分支選擇有關的:switch,break,case,default, fallthrough條件循環有關的:for,range,select,if,else,goto,continue類型定義有關的:interface,struct多線程有關的:go,chan包管理有關的:package,import變量定義有關的:map,const,type,var1.2 預定義標識符

容器操作有關的:append,cap,len,數據類型有關的:bool,byte,uint,uint16,uint32,uint64,int,int8,int16,int32,int64,float,float16,float32,float64,complex,complex64,complex128,string,uintptrbool類型值:true,false其他:iota,real,recover,panic,nil,new,make,imag,copy,closeconsole輸出有關:print,println2 Go語言的變量標識符

不能以數字為開頭的變量定義,滿足[A-Z]和[a-z]和[0-9]的組合。不能有運算符,不能有預定義的標識符,不能有關鍵字。如下定義是不合法的:(不合法例子)

以數字開頭:123varGo語言關鍵字不能作為變量,如:case運算符不能作為變量:max/total3 Go語言的分隔符

行分隔符和空格,行代表一個語句的開始和結束,相當於一個指令,沒有分號結尾。但是如果同一行有多個語句則需要分號;進行劃分。

空格則代表一個定義(變量)的開始和結束,代表多個不同的標識符和關鍵字區分。如下例子:

分隔符例子

4 Go語言的注釋

主要包括單行注釋和多行注釋如下。

// 單行注釋

/* 多行注釋 */

5 Go語言的標記

標記例子

語句的標記包括:關鍵字,標識符,常量,字符串,符號。第五行如此拆分如下:

標記拆分情況

6 總結分享

所以不管是人類之間交流的各國語言,還是可以跟計算機傳達信息和指令的程式語言。對於想要掌握一門語言來說,掌握基本語法是首要的條件,也是必要的條件。至於語法怎麼快速掌握,並且牢記於心,特別對於沒有程式語言基礎的小夥伴,最有效高效的辦法就是練習(寫一寫),並多動動手,才能達到應用自如的層次。所以要多練習,多寫代碼,多讀代碼。

這個就如同高中英語老師說你的閱讀還沒進步是因為,你還沒有突破讀到10萬閱讀量,等你到了就有量遍並發生質的改變。

當然學習Go語言不需要那麼大的量,你只需要應用到工作和實踐中,開始寫例子和項目就好了。

相關焦點

  • 「語言實踐」Go語言文檔自動化之go-swagger
    1 go-swagger依賴包獲取go-swagger中在github的倉庫下的依賴包如下,主要包含可以對語法進行校驗的govalidator,文檔化的標準specification的go-openapi,還有網絡處理的golang.org官網旗下的net和text。
  • Go語言常見語法錯誤
    Go語言常見語法錯誤1、開大括號不能放在單獨的一行錯誤代碼:package main
  • 大話go 語言:談談 go 語言的類型系統
    之所以有此回憶,是因為最近接觸到了網際網路的 C 語言:go。今天主要談談 go 語言類型系統,對其天生的並發、類協程留待下一節聊。go 語言的誕生體現了編程大佬們不甘寂寞、追求極簡又極度天才的行為。言歸正傳,對於有 C 語言基礎和 java 基礎的人來說 go 語言理解起來是非常簡單的,因為她努力地使自己變簡單。從類型系統角度我羅列下。靜態類型。
  • [GO語言基礎] 一.為什麼我要學習Golang以及GO語言入門普及
    Go 語言語法與 C 相近,但功能上有:內存安全,GC(垃圾回收),結構形態及 CSP-style 並發計算。該語言的吉祥物為金花鼠(gordon),如下圖所示。從各種角度看,Go語言確實 是從C語言繼承了相似的表達式語法、控制流結構、基礎數據類型、調用參數傳值、指針等諸 多編程思想,還有徹底繼承和發揚了C語言簡單直接的暴力編程哲學等。下面是Go語言中來自貝爾實驗室特有並發編程基因的演化過程:
  • GO語言入門(第一個go程序)
    乾淨、整齊和簡潔的語法也能夠提高程序的編譯速度,因為這些關鍵字在編譯過程中少到甚至不需要符號表來協助解析。這些方面的工作都是為了減少編碼的工作量,甚至可以與 Java 的簡化程度相比較。作為一門具有明確編碼規範的語言,它要求可以採用不同的編譯器如 gc 和 gccgo(第 2.1 節)進行編譯工作,這對語言本身擁有更好的編碼規範起到很大幫助。LALR 是 Go 語言的語法標準,你也可以在 src/cmd/internal/gc/go.y 中查看到,這種語法標準在編譯時不需要符號表來協助解析。
  • 入門教程:花 5 分鐘學習 Go 語言
    前幾天看到優質文章推送,注意到這篇文章(主要是標題吸引了我),文章非常簡潔,讓我們一起來回顧下相關的基礎知識。main.go 文件,輸入如下代碼,並將文件保存在上面創建的 hello 目錄下。不像其他語言,Go 語言不支持繼承也沒有類(我們可以通過結構體嵌套實現「繼承」)。
  • 解讀Go語言的2020:變革前夜
    從基礎層面講,數字經濟的發展必須要有半導體等高精尖領域的強力支持。而從應用層面說,數字經濟將會依託於雲計算、大數據和人工智慧。更具體地說,雲計算是高級的基礎設施,大數據和人工智慧是建立在雲計算之上的高級應用。Go 語言,早已霸佔了雲計算的大半個江山,今後它也將在大數據和人工智慧方面發揮重要作用。
  • Go語言愛好者周刊:第 12 期
    由於微信不允許外鏈,文中連結可以通過文末引用找到,或「閱讀原文」查看。鑑於大部分人可能沒法堅持把英文文章看完,因此,周刊中會儘可能推薦優質的中文文章。優秀的英文文章,我們的 GCTT 組織會進行翻譯。7、TiDB 是國內 PingCAP 團隊開發的一個分布式 SQL 資料庫。
  • 「Go 語言教程」Go 語言常量變量和運算符
    Go 語言教程每一門語言都會有常量的定義,變量的定義,以及基於這些定義的運算,那麼本次將進行Go語言的常量,變量和運算符進行介紹和講解。邏輯運算和語言無關,所有語言的邏輯運算都是通用的並且滿足以下規則:true && true為truetrue && false為falsetrue || true 為true
  • Go語言錯誤總結(一)
    Go語言錯誤總結(一)1、開大括號不能放在單獨的一行在大多數其他使用大括號的語言中
  • go get it 語法對嗎?
    按照教科書裡的語法規則,go get it 應該是一種「不算特別正確」的說法
  • Go語言愛好者周刊:第 23 期
    由於微信公眾號不支持外鏈,文章連結可通過文末 「閱讀原文」 查看。鑑於大部分人可能沒法堅持把英文文章看完,因此,周刊中會儘可能推薦優質的中文文章。優秀的英文文章,我們的 GCTT 組織會進行翻譯。利用此功能實現路由器等網關設備為其它設備實現全局透明代理,詳細教程可以參考項目主頁 wiki 裡面的《透明代理》。2)修復使用代理後,網易雲音樂 UWP 應用無法正常使用的問題。3)修復了 http/sps 反向代理 https 不能工作的問題。4)優化了 http 代理,兼容一些舊的 http 客戶端發送 http 代理請求時,使用不標準的 URL 情況。
  • 知乎問答:為什麼字節跳動選擇使用 Go 語言?
    這裡選取幾個回答,主要探討選 Go 語言可能的考慮。黃魏 得看業務需求吧,我們也是 py 轉 go。用 go 重構就沒這麼多彎彎繞繞的事了。寫個小工具而已,何苦為難自己。都說 go 是 py 的替代者,從使用感受上確實如此。當然 py 的生態足夠大,go 在這方面還比較稚嫩。但也有看到像七牛實現的 goplus 在挖 py 科學計算的牆角 。開源方面 go 還有好多輪子可以造,國人的參與度和熱情都比較高漲,這可是個建功立業的好機會啊!
  • Go語言愛好者周刊:第 77 期 — 這道題目測答對的人不多
    由於微信公眾號支持不外鏈,文章大量連結可通過文末「閱讀原文」查看。題圖:excelize 2.3.2 發布刊首語 以下代碼輸出結果中, goroutine 的數量是幾個?2、你遇到過哪些高質量的 Go 語言面試題?來自知乎的一個問題和一些答案的整理。3、深入理解 Go 語言的類型無論什麼語言,類型都涉及到了編程語法的方方面面。
  • 《Go語言實戰》筆記(二) | Go開發工具
    Go平衡了底層系統語言的能力,以及在現代語言中所見到的高級特性。你可以依靠Go語言來構建一個非常快捷、高性能且有足夠控制力的編程環境。使用Go語言,可以寫得更少,做得更多。《Go 語言實戰》一書是Go語言領域極具聲望的技術展專家力作,以下為本書讀者精彩的讀書筆記。
  • 「Go 語言教程」Go 語言條件和循環語句
    Go 語言教程在學習計算機編程的時候我們知道(沒系統學過的)也知道關於計算機的指令系統是0和1構成,同時計算機只識別0和1的串,最後計算機可以執行的就是0和1串組成的機器代碼。那麼對於Go語言的條件和循環邏輯的都包含有什麼內容呢,讓我們一起看一下,首先對於條件語句和循環邏輯的定義如下:條件語句是用來判斷給定的條件是否滿足(表達式值是否為0或者false),並根據判斷的結果(true或者false)決定執行的語句,選擇的結構和流程就是使用條件語句來實現的。
  • 解讀 Go 語言的 2019:Go 語言不行了嗎?
    作為緊跟時代步伐的軟體開發者,我們還是應該務實一些,多做一些腳踏實地的事情,尤其是在構建底層的基礎設施方面。而 Go 語言正是我們做這類事情時所需要的強大工具。本文是 InfoQ 「解讀 2019 」年終技術盤點系列文章之一。從 TIOBE Index 來看,Go 語言最近在全球的熱度似乎有所下滑。
  • JAVA與GO語言哪個更容易學?
    一,GO語言的優劣勢Go開發中的痛點編譯慢,失控的依賴,個工程師只是用了一個語言裡面的一部分,程序難以維護(可讀性差、文檔不清晰等),更新的花費越來越長,交叉編譯困難>Go語言的優勢學習曲線容易MGo語言語法簡單,包含了類C語法。
  • GitHub開源中文版《Go入門指南》學習教程
    一個語言歡迎肯定有它獨特的原因。比如Python作為膠水語言,上手快、使用簡單、三方庫資源豐富,機器學習的一些模型算法包,深度學習Tensorflow、Pytorch都是用Python來做主要語言。Go語言現在越來越火了,各大廠逐漸開始使用Go語言,為啥呢?
  • go語言好不好?可以用來做什麼?如何學好golang?
    Go(又稱 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 開發的一種靜態強類型、編譯型語言。Go 語言語法與 C 相近,但功能上有:內存安全,GC(垃圾回收),結構形態及 CSP-style 並發計算。