golang 安裝 | go-zero Documentation
????????在這個文檔里,環境變量系統自動配好了(自定義的一樣)不需要修改環境變量。
我下載的是1.25版本的。
目前使用go mod管理項目。
? ? ? ? C++的產出比太低,而Java和C#哲學又來源于C++。
Go語言成功的項目
使用vscode管理項目:
????????以前項目需要在goPath下創建,現在不需要了,在哪里都可以。
首先下載安裝包,下一步下一步,安裝go語言的安裝包
go run運行項目
go build編譯項目
我這里是go build后生成對應的.exe文件,然后.\? .exe文件
1. print和println的區別
1.println會換行
print不會換行
2.println輸出多個字符中間會有空格
? ? ? ? print沒有空格
fmt.Print("A", "B", "C") //中間沒有空格
fmt.Println("A", "B", "C") //中間有空格
2.prinln和printf的區別
2. 定義變量
var a = "aaa" //go語言中變量定義后必須要使用
// fmt.Println(a)
fmt.Printf("%v", a)
%v是格式化輸出
1.var? ?聲明變量
var? 變量名? 類型?
var username string
? ? ? ? 變量聲明后沒有初始化的話 ,值為空。
var a1 = "張三"
fmt.Println(a1)
???變量名稱的命名:Go語言變量名由字母、數字、下劃線組成,其中首個字符不能為數字。
????????Go語言中關鍵字和保留字都不能用作變量名稱。
同一作用域內,變量名稱不能重復聲明
2. 初始化
①第一種初始化變量的方式:
var username string
username = "張三"
② 定義的時候初始化
var username string = "張三"
會有報錯
③
var username = "張三"
3. 一次聲明多個變量
①
var? 變量名稱,變量名稱? ?類型
②
var (
? ? ? ? 變量名稱? 類型
? ? ? ? 變量名稱? ?類型
)
var a1, a2 string
var (a1 stringa2 inta3 string
)
打印測試:
a1 = "張三"
a2 = 20
a3 = "男"
fmt.Println(a1, a2, a3)
4. 短變量聲明法
①基本類型
username := "張三"
短變量聲明法
fmt.Printf("類型: %T", username)
通過%T我們可以知道這個聲明的變量是什么類型
②聲明多個變量
使用短變量聲明法一次聲明多個變量并初始化
a,b,c := 12,13,20
如果類型不一致,也不會報錯
a,b,c := 12,13,"C"
fmt.Printf("a類型:%T, b類型:%T, c類型:%T", a, b, c)
!!注意
????????短變量聲明法只能聲明局部變量,不能聲明全局變量
5.匿名變量
????????匿名變量 在使用多重賦值時,如果想要忽略某個值,可以使用匿名變量 (anonymous variable)
? ? ? ? 匿名變量可以用一個下劃線 _ 表示
舉例:
首先封裝一個方法:
func getUserInfo() (string, int){return "zhangsan", 10
}
我們要返回一個string類型和一個int類型的數據
然后在main函數中 調用這個方法
var username , age = getUserInfo()
fmt.Println(username, age)
這個我們可以獲得這兩個值。
如果我們想要接收username,忽略age,這樣寫:
var username, _ =getUserInfo()
fmt.Println(username)//zhangsan
匿名變量不占用命名空間,不會分配內存,所以匿名變量之間不存在重復聲明
var _, age = getUserInfo()
fmt.Println(age)
3.定義常量
? ? ? ? 相對于變量,常量是恒定不變的值,多用于程序運行期間不會改變的那些值。
常量的聲明和變量聲明非常類似,只是把var換成了 const, 常量在定義的時候必須賦值。
3.1 使用const定義常量
const pi = 3.14159
如果是這樣,會報錯
const pi string pi = "xxx"
只能定義的時候賦值使用
3.2 聲明多個常量
const (A = "A"B = "B"
)
const同時聲明多個常量時,如果省略了值則表示和上面一行的值相同。
const (n1 = 100n2n3n4
)
這樣的話,n2,n3,n4和n1的值相同。都是100
3.3 const 結合 iota 的使用
????????iota是golang語言的常量計數器,只能在常量的表達式中使用。
????????iota在const關鍵字出現時將被重置為0(const內部的第一行之前),const中每新增一行常量聲明將使iota計數一次(iota可理解為const語句塊中的行索引)。
const a = iota
fmt.Println(a) // 0
如果一個常量等于iota時,這個常量就是0.
const (n1 = iotan2n3n4
)fmt.Println(n1, n2, n3, n4) //0,1,2,3
const (n1 = iota_n3n4
)
fmt.Println(n1, n3, n4) //0 2 3
iota還可以在聲明中進行插隊
const (n1 = iota //0n2 = 100 //100n3 = iota //2n4 //3
)
多個 iota 定義在一行
const (n1, n2 = iota + 1, iota + 2 //1,2n3, n4 //2,3n5, n6 //3,4
)
4. GO語言變量、常量命名規則
- 變量名稱必須由數字、字母、下劃線組成。
- 標識符開頭不能是數字。
- 標識符不能是保留字和關鍵字。
- 變量的名字是區分大小寫的。如“ age” 和“Age” 是不同的變量。在實際的運用中,也建議不要用一個單詞大小寫區分兩個變量。
- 標識符(變量名稱)一定要見名思意:變量名稱建議用名詞,方法名稱建議用動詞。
- 變量命名一般采用駝峰式,當遇到特有名詞(縮寫或簡稱,如DNS)的時候,特有名詞根據是否私有全部大寫(公有)或小寫(私有)。
常量建議全部用大寫,當然不大寫也不報錯。
5.Go語言代碼風格
1. 代碼每一行結束后不用寫分號(;)
2. 運算符左右建議各加一個空格
var username string = "harriet"
3. Go語言程序員建議使用駝峰式命名
? ? ? ? 當名字由幾個單詞組成時優先采用大小寫分隔
4. 強制的代碼風格
? ? ? ? 左括號必須緊接著語句不換行。
5. 可以使用 go fmt格式化代碼