2.1 Go語(yǔ)言從入門(mén)到精通:Go語(yǔ)言基礎(chǔ)語(yǔ)法


作者:xcbeyond
瘋狂源自夢(mèng)想,技術(shù)成就輝煌!微信公眾號(hào):《程序猿技術(shù)大咖》號(hào)主,專注后端開(kāi)發(fā)多年,擁有豐富的研發(fā)經(jīng)驗(yàn),樂(lè)于技術(shù)輸出、分享,現(xiàn)階段從事微服務(wù)架構(gòu)項(xiàng)目的研發(fā)工作,涉及架構(gòu)設(shè)計(jì)、技術(shù)選型、業(yè)務(wù)研發(fā)等工作。對(duì)于Java、微服務(wù)、數(shù)據(jù)庫(kù)、Docker有深入了解,并有大量的調(diào)優(yōu)經(jīng)驗(yàn)。 









文章目錄

    1、命名規(guī)則
    2、關(guān)鍵字
    3、注釋
    4、行分隔符
    5、字符串輸出
    6、字符串拼接

與其他編程語(yǔ)言一樣,Go語(yǔ)言項(xiàng)目(大程序)都是從基本組件和基本語(yǔ)法編寫(xiě)而成。上一章節(jié)我們已經(jīng)了解了 Go 語(yǔ)言的樣子,本章節(jié)我們將學(xué)習(xí)Go語(yǔ)言的基礎(chǔ)語(yǔ)法,也將是接下來(lái)所有Go程序中不可或缺的部分。
1、命名規(guī)則

Go中類型、變量、常量、語(yǔ)句標(biāo)簽、包和函數(shù)的命名都遵循一個(gè)簡(jiǎn)單的規(guī)則:**命名的開(kāi)頭是一個(gè)字母或下劃線而不能是數(shù)字,后面可以跟任意數(shù)量的字符、數(shù)字和下劃線,并區(qū)分大小寫(xiě)。**如xcbeyond和xcBeyond是不同的標(biāo)識(shí)符。

以下是有效的標(biāo)識(shí)符:

mahesh   kumar   abc   move_name   a_123
myname50   _temp   j   a23b9   retVal

   
以下是無(wú)效的標(biāo)識(shí)符:

    1ab:以數(shù)字開(kāi)頭
    case:Go 語(yǔ)言的關(guān)鍵字
    a+b:運(yùn)算符是不允許的

2、關(guān)鍵字

Go語(yǔ)言和其他語(yǔ)言一樣,也有一些關(guān)鍵詞供程序使用。Go中有25個(gè)關(guān)鍵字或保留字:

 break     default      func    interface  select
 case      defer        go      map        struct
 chan      else         goto    package    switch
 const     fallthrough  if      range      type
 continue  for          import  return     var

    

除了以上介紹的這些關(guān)鍵字,Go 語(yǔ)言還有 36 個(gè)預(yù)定義標(biāo)識(shí)符:

append    bool    byte    cap        close    complex    complex64    complex128    uint16
copy    false    float32    float64    imag    int        int8        int16        uint32
int32    int64    iota    len        make    new        nil            panic        uint64
print    println    real    recover    string    true    uint        uint8        uintptr

 
3、注釋

注釋,是為了增強(qiáng)代碼的可讀性,但不參與程序的一切功能,不會(huì)被編譯。每個(gè)程序都應(yīng)該在適當(dāng)?shù)奈恢锰砑幼⑨專糜诠δ?、?shí)現(xiàn)、標(biāo)注等說(shuō)明,如果你不想不其他人唾棄,請(qǐng)一定養(yǎng)成編寫(xiě)注釋的習(xí)慣,注釋和代碼同樣重要。






Go語(yǔ)言的注釋主要分為兩類:

    單行注釋:你可以在任何地方使用以 // 開(kāi)頭的單行注釋,是最常見(jiàn)的注釋形式。
    多行注釋:也叫塊注釋,以 /* 開(kāi)頭,并以 */ 結(jié)尾。

如下所示:

package main

import "fmt"

func main() {
    // "Hello World!" Go語(yǔ)言程序
    fmt.Println("Hello World!")

    // 這是一個(gè)單行注釋

    /*
       這是一個(gè)多行注釋
       by xcbeyond
    */
}

    

4、行分隔符

在Go程序中,一行代表一個(gè)語(yǔ)句結(jié)束。每個(gè)語(yǔ)句不需要像Java等其它語(yǔ)言一樣以分號(hào); 結(jié)尾,因?yàn)檫@些工作都將由Go編譯器自動(dòng)完成。

如果你打算將多個(gè)語(yǔ)句寫(xiě)在同一行,則必須使用;人為區(qū)分,但在實(shí)際開(kāi)發(fā)中我們并不鼓勵(lì)這種做法。

以下為兩個(gè)語(yǔ)句:

fmt.Println("Hello, World!")
fmt.Println("Hello, xcbeyond!")

   

5、字符串輸出

Go語(yǔ)言的字符串輸出可以通過(guò)函數(shù)fmt.Println或fmt.Print實(shí)現(xiàn),fmt.Println會(huì)輸出后換行,類似于Java語(yǔ)言中的System.out.println和System.out.print。

如下所示:

package main

import "fmt"

func main() {
    // 輸出后換行
    fmt.Println("xcbeyond,帥么?")
    // 輸出后不換行
    fmt.Print("帥!")
    fmt.Print("太帥了!")
}

   

輸出結(jié)果:

xcbeyond,帥么?
帥!太帥了!

此外,字符串輸出還可以進(jìn)行格式化輸出,后續(xù)章節(jié)會(huì)進(jìn)行介紹。
6、字符串拼接

Go語(yǔ)言的字符串拼接最常用的方法是通過(guò)+ 實(shí)現(xiàn):

package main

import "fmt"

func main() {
    fmt.Println("xc" + "beyond")
}

    

輸出結(jié)果:

xcbeyond

    

    +實(shí)現(xiàn)拼接,會(huì)產(chǎn)生一個(gè)新的字符串對(duì)效率有所影響。除此之外,還可以借助函數(shù)fmt.Sprintf、strings.Join、buffer.WriteString等實(shí)現(xiàn),后續(xù)字符串章節(jié)會(huì)詳細(xì)介紹。