一日看盡golang基礎語法

 

golang的基礎語法和其他語言有共通之處,有其他語言的語法基礎能讓我們更快的熟悉golang。那直接讓我們步入正題吧。

1、註釋

  • 單行註釋 和 多行註釋

  • // single annotation
    /* 
     muti-line annotation 
    */

     

2、定義包名

packagemain//定義一個名稱爲main的包
  • 每個go文件中必須定義包名來指明該文件歸屬於哪個包,而且定義包名必須在文件中非註釋的第一行;

  • go文件中若存在程序入口(main函數),則該文件定義的包名必須爲main;

  • 一個文件中有且只有一次定義,即只有一行package語句;

  • 包名和文件名沒有必然聯繫,可以不同。

3、導入依賴庫(系統庫和第三方庫)

import"fmt"
import(
   "os"
   "strings"
)

兩種導入方式:單行導入或合併導入。由於項目中一般會有很多庫文件,所以推薦合併導入。注意:導入的包都必須使用,若沒有使用編譯時將報錯。

4、方法

funcmain(){
 doSomething
}

func是方法定義的關鍵字,函數體用“ { } ”包圍,注意: { (左括號)不能單獨成行,必須和main()在同一行。方法將在下一篇仔細講解。

5、方法調用

fmt.Println("hello world")

fmt爲golang提供的格式化輸出系統庫,本句實現在命令行輸出hello world。

 

6、變量、常量、佔位符、運算符、數組、指針、結構體

  • 變量

varaint=1    //第一種: var variable_name variable_name
value:=1       //第二種: value_name := 1
varb, c, d=1, 2, 3//第三種: 合併聲明
var(                  //第四種: 合併聲明
   value1int   =1
   value2string="hello world"
)

上述有三種變量聲明方式,var是golang的關鍵詞,用於變量的聲明。第一、三和四種可以在任意地方聲明,相當於全局變量;而第二種只能在函數體內聲明,相當於局部變量。變量在聲明後若不手動定義,編譯器將爲其賦值爲相應的默認值

注意:golang中的變量、方法、結構體等等的名稱都推薦使用駝峯命名法,而名字的首字母如果是小寫字母則表示在包(package)內可見;而如果是大寫字母則表示包外可見

  • 常量

constvaraint=1
constvar(
bint=1
   cstring="hello world"
)

常量同樣有單行聲明和合並聲明,聲明時必須定義,定義後不可修改。

  • 佔位符

_, a=myFunction()

function()方法有兩個返回值,第一個返回值賦給_ , 第二個返回值賦給a,此時的 _ 就稱做佔位符,可以理解爲僅僅爲了給第一個返回值有位置存放即可,這個返回值我再也不會用到;如果這個返回值之後還可能用到,則不能賦給 _ ,否則今後無法再使用。

  • 運算符

    這個不用多講,加減乘除餘、與或非、大小等、賦值取地址等等。

  • 數組

// 形如 var variable_name [SIZE] variable_type
var stuName [20] string
  • 指針

// 形如 var variable_name *variable_type
var stuNameIndex *string
  • 結構體

// 形如 type variable_type struct { …… }
type stuInfo struct {
  var id    int
  var name  string
}
var stuInfoEntry stuInfo
stuInfoEntry.id   = 1
stuInfoEntry.name = "Alice"

7、條件語句

  • if……else…… 語句。

if condition {
    doSomething
} else {
    doSomething
}
  • switch 語句

switch condition {
    case condition1:
        ...
    case condition2:
        ...
    default:
        ...
}
  • switch語句中沒有break語句,golang的語法經過優化後,在某個case執行完畢後就退出switch了,不會再接着往下執行;

  • 如果希望執行了某個case之後接着往下執行,可以在每個case最後使用fallthrough關鍵字。注意,使用fallthrough關鍵字後,後面的case是強制執行,無論condition是否爲true

  • select 語句

    這涉及到一些高級語法,本篇先不講述,我將在下一篇詳細解釋,感興趣的同學們可以自己查閱資料先學習一下。

8、for 循環語句

  • 標準格式

/*for init; condition; next {
  doSomething
}*/
for i:=0; i<20; i++ {
  fmt.Println("i is: %d", i)
}

特殊格式

//無限循環
for {
  doSomething
}
for true {
  doSomething
}
//省略init或next
for ; sum<100; {
  sum = sum + 1
}
  • 控制語句

    break、continue和goto是用於for語句或switch語句內的控制語句,其用法於c或c++中的用法相似,這裏就不再贅述了。

 

看到這裏,大家應該都覺得似曾相識,好像學過的編程語言都有這些東西。所以大家應該不用花太多時間在基礎語法上,幾分鐘就能看完。結合今天的基礎知識,大家應該可以寫出一些簡單代碼來驗證今天的基礎語法。

但是,本文也只是講解了一些基礎用法,工作中大家還會遇到更多高級的用法,那麼下一篇,我們將學習golang語言中的高級語法知識,包括select、channel、方法、切片、範圍、集合和接口等內容。

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