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

關(guān)鍵字
Go 語(yǔ)言有 25 個(gè)關(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ù) |
標(biāo)識(shí)符
標(biāo)識(shí)符用來(lái)命名變量, 類型等程序?qū)嶓w. 一個(gè)標(biāo)識(shí)符實(shí)際上就是一個(gè)或者多個(gè)字母 (A-Z 和 a-z), 數(shù)字 (0-9), 下劃線 (_) 組成的序列. 但是第一個(gè)字符必須是字母或者下?lián)Q線而不是數(shù)字.

Go 不允許在表示符中使用標(biāo)點(diǎn)符號(hào), 例如: “@”, “$”, 和 “%”. 并且 Go 是一種區(qū)分大小寫(xiě)的編程語(yǔ)言.
數(shù)據(jù)類型
| 類型 | 說(shuō)明 |
|---|---|
| 布爾類型 (Boolean) | true / false |
| 整數(shù)類型 (Integer) | 1, 2, 3, 4, … |
| 浮點(diǎn)類型 (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
// 定義浮點(diǎn)型變量
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, 指定變量類型, 聲明后再進(jìn)行賦值:
var 變量名 變量類型 變量名 = 值
格式 2, 根據(jù)值自行判定變量類型:
var 變量名 = 值
格式 3, 省略 var. (注意: “:=” 左側(cè)的變量不應(yīng)該是已經(jīng)聲明過(guò)的, 否則會(huì)導(dǎo)致編譯錯(cuò)誤):
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)存中的值.

當(dāng)使用等號(hào) “=” 將一個(gè)變量賦值給另一個(gè)變量時(shí) (num2 = num1). 實(shí)際上在內(nèi)存中將 num1 的值進(jìn)行了拷貝.
例子:
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)于手把手帶你走進(jìn)Go語(yǔ)言之語(yǔ)法基礎(chǔ)解析的文章就介紹到這了,更多相關(guān)Golang 語(yǔ)法基礎(chǔ)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Go Run, Go Build, Go Install的區(qū)別
本文深入探討Go語(yǔ)言中g(shù)orun、gobuild和goinstall三個(gè)常用命令的功能區(qū)別和適用場(chǎng)景,文中通過(guò)具體代碼示例,詳細(xì)解釋了各命令的使用方式及其應(yīng)用場(chǎng)景,幫助開(kāi)發(fā)者高效利用這些工具2024-10-10
Golang實(shí)現(xiàn)拓?fù)渑判?DFS算法版)
這篇文章主要介紹了Golang實(shí)現(xiàn)拓?fù)渑判?DFS算法版),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
Go構(gòu)建器模式構(gòu)建復(fù)雜對(duì)象方法實(shí)例
本文介紹了構(gòu)建器模式,如何通過(guò)構(gòu)建器對(duì)象構(gòu)建復(fù)雜業(yè)務(wù)對(duì)象的方法實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
深入理解gorm如何和數(shù)據(jù)庫(kù)建立連接
這篇文章主要為大家詳細(xì)介紹了gorm如何和數(shù)據(jù)庫(kù)建立連接,文中的示例代碼講解詳細(xì),對(duì)我們深入了解GO語(yǔ)言有一定的幫助,需要的小伙伴可以參考下2023-11-11
Golang語(yǔ)言JSON解碼函數(shù)Unmarshal的使用
本文主要介紹了Golang語(yǔ)言JSON解碼函數(shù)Unmarshal的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01
Go html/template 模板的使用實(shí)例詳解
這篇文章主要介紹了Go html/template 模板的使用實(shí)例詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-05-05
Go語(yǔ)言kube-scheduler深度剖析開(kāi)發(fā)之scheduler初始化
這篇文章主要介紹了Go語(yǔ)言kube-scheduler深度剖析開(kāi)發(fā)之scheduler初始化實(shí)現(xiàn)過(guò)程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
golang?gorm的Callbacks事務(wù)回滾對(duì)象操作示例
這篇文章主要為大家介紹了golang?gorm的Callbacks事務(wù)回滾對(duì)象操作示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-04-04

