目錄
- golang的基礎語法
- 注釋
- 定義包名
- 導入依賴庫
- 函數
- 函數調用
- 常量
- 占位符
- 運算符
- 數組
- 指針
- 結構體
- 切片
- 條件語句
- switch 語句
- select 語句
- for 循環語句
- 標準格式
- 特殊格式
- 控制語句
- golnag的開發者工具
golang的基礎語法
golang的基礎語法和其他語言大部分都差別不大,如果我們有學習過其他語言,比如JavaScript,php,java,python等,有其他語言的語法基礎,那么我們學習golang將更容易上手。那我們直接開始介紹golang的語法吧。
注釋
注釋分單行注釋和多行注釋。golang的注釋和其他的開發語言的注釋是一樣的。雙斜杠表示單行注釋,/**/表示多行注釋。
定義包名
一般來說,使用開發工具的時候,包名是不需要手動輸入的,開發工具會在創建文件的時候,自動生成包名。
比如定義一個包名稱為main的包:
package main //定義一個名稱為main的包
- 每個go文件中必須定義包名來指明該文件歸屬于哪個包,而且定義包名必須在文件中非注釋的第一行;
- go文件中若存在程序入口(main函數),則該文件定義的包名必須為main;
- 一個文件中有且只有一次定義,即只有一行package語句;
- 包名和文件名沒有必然聯系,可以不同。
導入依賴庫
依賴庫分為系統庫和第三方依賴庫。導入方式有兩種,單行導入和合并導入。一般上開發工具會自動幫忙處理。引用一個包的時候,使用單行,需要引用多個包的時候,會自動合并引用。
注意:導入的包都必須使用,若沒有使用編譯時將報錯。所以不要引入無用的包。
import "fmt"
import (
"os"
"strings"
"gorm.io/gorm"
"github.com/kataras/iris/v12"
)
函數
func是函數定義的關鍵字,函數體用 { }
包圍,注意: { (左括號)不能單獨成行,必須和main()在同一行。函數名小寫的時候表示這個函數是私有函數,函數名大寫的時候,表示這個函數是公開函數,公開函數可以全局訪問,私有函數只能在自己的包內訪問。
func main(){
fmt.Println("Hello World")
}
函數調用
函數的調用方式分2種,同一個包內的函數調用,可以直接寫函數名稱就可以,不同包之間的調用,需要引入對方的包,然后通過包名.函數名的方式調用。
比如下方的函數調用是調用了fmt包的Println函數。
fmt.Println("Hello World")
變量、常量、占位符、運算符、數組、指針、結構體
變量
變量使用之前,需要先聲明。變量的聲明分幾種方式。一種是在開頭的時候聲明,使用 var
關鍵詞來聲明變量,另一種是在使用的時候聲明, 使用 :=
來聲明和賦值。還有一種是合并聲明。不過盡量單獨聲明。
var a int = 1 //第一種: var 變量名 變量值
value := 2 //第二種: value_name := 1
var b, c, d = 1, 2, 3 //第三種: 合并聲明
var( //第四種: 合并聲明
value1 int = 3
value2 string = "Hello World"
)
上述有三種變量聲明方式,var是golang的關鍵詞,用于變量的聲明。第一、三和四種可以在任意地方聲明,當定義在函數體外時相當于全局變量;而第二種只能在函數體內聲明,相當于局部變量。變量在聲明后若不手動定義,編譯器將為其賦值為相應的默認值
注意:golang中的變量、方法、結構體等等的名稱都推薦使用駝峰命名法,而名字的首字母如果是小寫字母則表示在包(package)內可見;而如果是大寫字母則表示包外可見。
常量
const var a int = 1
const var (
b int = 2
c string = "Hello World"
)
常量通過關鍵詞const來定義。常量同樣有單行聲明和合并聲明,聲明時必須定義,定義后不可修改。
占位符
function()函數有兩個返回值,第一個返回值賦給_ , 第二個返回值賦給a,此時的 就稱做占位符,可以理解為僅僅為了給第一個返回值有位置存放即可,這個返回值我再也不會用到;如果這個返回值之后還可能用到,則不能賦給 ,否則今后無法再使用。
運算符
golang的運算符包括:
- 算術運算符:
+
相加、 -
相減、 *
相乘、 /
相除、 %
求余、 ++
自增、 --
自減。
- 關系運算符:
==
檢查兩個值是否相等、 !=
檢查兩個值是否不相等、 >
檢查左邊值是否大于右邊值、
檢查左邊值是否小于右邊值、 >=
檢查左邊值是否大于等于右邊值、 =
檢查左邊值是否小于等于右邊值
- 邏輯運算符:
邏輯 和 運算符、 ||
邏輯 或 運算符、 !
邏輯 非 運算符
- 位運算符:
按位與運算符""是雙目運算符,其功能是參與運算的兩數各對應的二進位相與; |
按位或運算符"|"是雙目運算符,其功能是參與運算的兩數各對應的二進位相或; ^
按位異或運算符"^"是雙目運算符,其功能是參與運算的兩數各對應的二進位相異或;
左移運算符""是雙目運算符,左移n位就是乘以2的n次方,其功能把""左邊的運算數的各二進位全部左移若干位,由""右邊的數指定移動的位數,高位丟棄,低位補0; >>
右移運算符">>"是雙目運算符,右移n位就是除以2的n次方,其功能是把">>"左邊的運算數的各二進位全部右移若干位,">>"右邊的數指定移動的位數。
golang的運算符合其他開發語言是一致的,這里不做更多介紹。
數組
數組是具有相同唯一類型的一組已編號且長度固定的數據項序列,這種類型可以是任意的原始類型例如整型、字符串或者自定義類型。
// 形如 var 變量名 [數量] 變量類型
var stuName [20] string
指針
一個指針變量指向了一個值的內存地址。
var-type 為指針類型,var_name 為指針變量名,* 號用于指定變量是作為一個指針。
類似于變量和常量,在使用指針前你需要聲明指針。指針聲明格式如下:
// var var_name *var-type
var stuNameIndex *string
結構體
結構體定義需要使用 type 和 struct 語句。struct 語句定義一個新的數據類型,結構體中有一個或多個成員。type 語句設定了結構體的名稱。結構體的格式如下:
//形如 type variable_type struct { …… }
type People struct {
var id int
var name string
}
var people People
people.id = 1
people.name = "Sinclar"
切片
Go 語言切片是對數組的抽象。
Go 數組的長度不可改變,在特定場景中這樣的集合就不太適用,Go中提供了一種靈活,功能強悍的內置類型切片("動態數組"),與數組相比切片的長度是不固定的,可以追加元素,在追加時可能使切片的容量增大。
var slice1 []type
//也可以指定長度
var slice1 []type = make([]type, 10)
//也可以簡寫為
slice1 := make([]type, 10)
條件語句
條件語句有兩種,一種是 if……else…… 語句,另一種是 switch 語句,還有一種select語句。
if……else……
if 條件 {
執行代碼
} else {
執行代碼
}
switch 語句
switch condition {
case condition1:
...
case condition2:
...
default:
...
}
select 語句
這涉及到一些高級語法,本篇先不講述,我將在下一篇詳細解釋,感興趣的同學們可以自己查閱資料先學習一下。
switch語句中沒有break語句,golang的語法經過優化后,在某個case執行完畢后就退出switch了,不會再接著往下執行;
如果希望執行了某個case之后接著往下執行,可以在每個case最后使用fallthrough關鍵字。注意,使用fallthrough關鍵字后,后面的case是強制執行,無論condition是否為true
for 循環語句
golang的循環語句只有一種。那就是for語句。for語句有幾種形式。
標準格式
/*for init; condition; next {
doSomething
}*/
for i:=0; i20; i++ {
fmt.Println("i is: %d", i)
}
特殊格式
//無限循環
for {
doSomething
}
for true {
doSomething
}
//省略init或next
for ; sum100; {
sum = sum + 1
}
控制語句
break、continue和goto是用于for語句或switch語句內的控制語句,其用法于c或c++中的用法相似,這里就不再贅述了。
看到這里,大家應該都覺得似曾相識,好像學過的編程語言都有這些東西。所以大家應該不用花太多時間在基礎語法上,幾分鐘就能看完。看完這些基礎知識,大家應該可以寫出一些簡單代碼來驗證今天的基礎語法。
但是,這里也只是講解了一些基礎用法,在接下來的學習中,我們還會遇到更多高級的用法,包括select、channel、方法、切片、范圍、集合和接口等內容。
golnag的開發者工具
我現在使用的開發者工具是GoLand。這是一個非常強大的golang開發工具。因此在此我也推薦大家使用GoLand開發工具來開發我們的golang博客系統。
到此這篇關于golang的基礎語法和常用開發工具的文章就介紹到這了,更多相關golang常用開發工具內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- 詳解golang 模板(template)的常用基本語法
- 對Golang import 導入包語法詳解
- 手把手帶你走進Go語言之語法基礎解析