手把手帶你走進Go語言之語法基礎(chǔ)解析
概述
Golang 是一個跨平臺的新生編程語言. 今天小白就帶大家一起攜手走進 Golang 的世界. 
Go 語法基礎(chǔ)
Go 程序可以由多個標記組成:
- 關(guān)鍵字
- 標識符
- 常量
- 字符串
- 符號

關(guān)鍵字
Go 語言有 25 個關(guān)鍵字:
| 關(guān)鍵字 | 作用 |
|---|---|
| var & const | 變量和常量的聲明 |
| package & import | 導(dǎo)入 |
| func | 用于定義函數(shù)和方法 |
| return | 用于函數(shù)返回 |
| defer someCode | 在函數(shù)退出前執(zhí)行 |
| go | 用于并行 |
| select | 用于選擇不同類型的通訊 |
| interface | 用于定義接口 |
| struct | 用于定義抽象數(shù)據(jù)類型 |
| break, case, continue, for, falthrough, else, if. switch, goto, defult | 流程控制 |
| chan | 用于 channel 通訊 |
| type | 用于聲明自定義類型 |
| map | 用于聲明 map 類型數(shù)據(jù) |
| range | 用于讀取 slice, map, channel 數(shù)據(jù) |
標識符
標識符用來命名變量, 類型等程序?qū)嶓w. 一個標識符實際上就是一個或者多個字母 (A-Z 和 a-z), 數(shù)字 (0-9), 下劃線 (_) 組成的序列. 但是第一個字符必須是字母或者下?lián)Q線而不是數(shù)字.

Go 不允許在表示符中使用標點符號, 例如: “@”, “$”, 和 “%”. 并且 Go 是一種區(qū)分大小寫的編程語言.
數(shù)據(jù)類型
| 類型 | 說明 |
|---|---|
| 布爾類型 (Boolean) | true / false |
| 整數(shù)類型 (Integer) | 1, 2, 3, 4, … |
| 浮點類型 (Float) | 1.1, 2.2, 3.3, 4.4, … |
| 字符串類型 (String) | 字符串類型表示字符串值的合集. 字符串是不可變類型, 一旦創(chuàng)建后, 就不可能改變字符串的內(nèi)容. |
| 派生類型 | 包括指針可型, 數(shù)組類型, 結(jié)構(gòu)類型, 聯(lián)合類型, 函數(shù)類型, 切片類型, 接口類型 |
例子:
package main
import "fmt"
func main() {
// 定義字符串變量
var str = "我是小白呀"
// 定義整數(shù)型變量
var integer = 8
// 定義浮點型變量
var float = 1.2
// 定義布爾類型變量
var bool = true
fmt.Println("string: ", str, "\ninteger: ", integer, "\nfloat: ", float, "\nboolean: ", bool)
}
輸出結(jié)果:
string: 我是小白呀
integer: 8
float: 1.2
boolean: true
變量聲明
格式 1, 指定變量類型, 聲明后再進行賦值:
var 變量名 變量類型 變量名 = 值
格式 2, 根據(jù)值自行判定變量類型:
var 變量名 = 值
格式 3, 省略 var. (注意: “:=” 左側(cè)的變量不應(yīng)該是已經(jīng)聲明過的, 否則會導(dǎo)致編譯錯誤):
v_name := value

例子:
package main
import "fmt"
func main() {
// 方法一
var num1 int // 聲明變量
num1 = 1 // 賦值
fmt.Println(num1) // 調(diào)試輸出
// 方法二
var num2 = 2 // 自行判定變量類型
fmt.Println(num2) // 調(diào)試輸出
// 方法三
num3 := 3 // 省略var
fmt.Println(num3) // 調(diào)試輸出
}
輸出結(jié)果:
1
2
3
多變量聲明
格式:
var 變量名稱1, 變量名稱2, 變量名稱3 = 值1, 值2, 值2
例子:
package main
import "fmt"
func main() {
// 多變量聲明
var num4, num5, num6 = 1, 2, 3
fmt.Println(num4, num5, num6) // 調(diào)試輸出
}
輸出結(jié)果:
1 2 3
值類型和引用類型
所有像 int, float, bool 和 string 這些基本類型都屬于值類型. 使用這些類型的變量直接指向存在內(nèi)存中的值.

當使用等號 “=” 將一個變量賦值給另一個變量時 (num2 = num1). 實際上在內(nèi)存中將 num1 的值進行了拷貝.
例子:
package main
import "fmt"
func main() {
// 定義變量
var num1 = 2
var num2 = num1
// 調(diào)試輸出值和地址
fmt.Println(num1, &num1)
fmt.Println(num2, &num2)
}
輸出結(jié)果:
2 0xc0000ac058
2 0xc0000ac070
到此這篇關(guān)于手把手帶你走進Go語言之語法基礎(chǔ)解析的文章就介紹到這了,更多相關(guān)Golang 語法基礎(chǔ)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Go Run, Go Build, Go Install的區(qū)別
本文深入探討Go語言中g(shù)orun、gobuild和goinstall三個常用命令的功能區(qū)別和適用場景,文中通過具體代碼示例,詳細解釋了各命令的使用方式及其應(yīng)用場景,幫助開發(fā)者高效利用這些工具2024-10-10
Go構(gòu)建器模式構(gòu)建復(fù)雜對象方法實例
本文介紹了構(gòu)建器模式,如何通過構(gòu)建器對象構(gòu)建復(fù)雜業(yè)務(wù)對象的方法實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-12-12
Golang語言JSON解碼函數(shù)Unmarshal的使用
本文主要介紹了Golang語言JSON解碼函數(shù)Unmarshal的使用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-01-01
Go語言kube-scheduler深度剖析開發(fā)之scheduler初始化
這篇文章主要介紹了Go語言kube-scheduler深度剖析開發(fā)之scheduler初始化實現(xiàn)過程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-04-04
golang?gorm的Callbacks事務(wù)回滾對象操作示例
這篇文章主要為大家介紹了golang?gorm的Callbacks事務(wù)回滾對象操作示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪2022-04-04

