Go语言基础语法 介绍:是高性能,高并发,语法简单,简洁高效,拥有丰富的标准库,完善的工具链,编译结构都是静态链接的,可以快速编译,微服务在线上部署的编译时间小于1分钟,支持跨平台,垃圾回收无需考虑内存的分配释放
入门:
1.安装Golang
2.配置集成开发环境vscode 基础语法: package main 第一行说明文件属于main包import "fmt" // 包导入,往屏幕输出字符串,格式化字符串 func main()调用了一个main函数 当编写好一个项目后,需要在终端中使用 go run 路径/项目.go
变量与常量 在golang中使用var关键字来声明一个变量 var 变量名 变量类型 = 值 还可以通过使用 := 来进行声明一个变量,这样的话前面变量的类型由后面值的类型决定 Golang中在声明一个常量时候,使用const关键字来进行声明 const s string = "constant"
判断语句 golang中的if后面没有小括号,但是需要有大括号。 if a := 10; a < 11{ …… }Golang语言在执行判断语句前面,可以有一个简单的执行语句,使用;进行分隔。
循环语句 for i := 0; i < 10; i++ { // 执行语句 } 当需要执行一个死循环时,只需要在for后面什么都不写即可。我们可以使用 continue继续循环 或 break 跳出循环。 for { // 执行语句 fmt.Println("loop") break //跳出循环 }
switch 条件语句 a := 2 switch a { case 1: fmt.Println("one") case 2: fmt.Println("two") default: fmt.Println("other") } 在 Golang里面当执行完选择的分支语句后,不用使用break进行跳出,会自动跳出,不继续往下进行。
数组 var 变量名 [数组大小] 数组类型 可以使用 := 来给变量赋值一个数组。 var 变量名 := [数组大小] 数组类型 {数组元素1,数组元素2,…}
切片 切片可以理解成一个可变长的数组,通常使用 make 关键字来创建一个切片。 变量名 := make([]变量类型,大小) 可以使用append来给切片添加一个元素, s := make([]string,3) s = append(s, "d")
map 使用make创建一个map m := make(map[key的类型] value的类型) 使用delete函数去删除键值对。 delete(m, "one") rang 对于一个slice或者map,可以通过使用range来进行快速的遍历, nums := []int{2, 3, 4} // i 表示索引, sum表示值 for i, sum := range nums { fmt.Println(i, sum) // index: 0 num: 2 | index: 1 num: 3| index: 2 num: 4 }
函数的定义如下 func add(x, y int) int {
} // 定义一个名为 add 的函数方法 // 参数为x,y,并且都是int类型 // 返回值确定为int类型
指针 Golang语言的指针使用跟C语言类似,使用* 号用于指定变量是作为一个指针。使用&进行取指针的地址。
结构体 type 结构体名 struct { 字段 字段类型 字段 字段类型 } 可以使用结构体的名称去初始化一个结构体。在初始化的时候,需要传入初始值。 a := 结构体名{"值1","值2"} b := 结构体名{字段1: "值1", 字段2: "值2"} 声明一个结构体方法格式如下 // 不带指针 func (结构体变量名 结构体名) 方法名(参数 参数类型) 返回值类型{
} // 带指针 func (结构体变量名 *结构体名) 方法名(参数 参数类型) 返回值类型{
}
错误处理 Golang在进行错误处理的时候,可以在函数的返回值里面添加一个 error类型的变量。 func fondNum(x int, y []int) (a int, err error) { for _,i := range y { if x == i { retrun i, err } } return nil, errors.Now("not fond") }
字符串操作 strings.EqualFold(s,t string)bool 使用EqualFold,您可以检查两个字符串是否相等。如果两个字符串相等,则返回输出true,如果两个字符串都不相等,则返回false。
strings.Replace(str string, old string, new string, n int): 字符串替换 替换功能用字符串中的某些其他字符替换某些字符。n指定要在字符串中替换的字符数。如果n小于0,则替换次数数没有限制
字符串格式化 fmt.Printf("%v", 变量名) // 打印值 fmt.Printf("%+v",变量名) // 打印字段名字和值 fmt.Printf("%#v", 变量名) // 打印结构体的完整字段名称和值 总结go的技术优势 高效性 Go语言在设计之初就考虑到了高并发和高性能。通过引入goroutine和channel等机制,使得Go语言能够轻松地处理大量的并发请求。同时,Go语言采用垃圾回收机制,有效地避免了内存泄漏和内存溢出等问题,保证了程序的稳定性和高效性。 简洁性 Go语言的语法非常简洁,代码行数相对于其他语言也更少。这使得开发人员可以更加专注于业务逻辑的实现,而不必花费过多的时间在语法细节上。同时,Go语言的标准库也十分丰富,涵盖了各种常用的工具和功能,开发人员可以直接调用这些库,从而加快开发进度 可靠性 Go语言在设计之初就注重了代码的可靠性和健壮性。通过引入强类型和自动垃圾回收机制等特性,有效地避免了由于类型转换或内存泄漏等问题导致的程序崩溃和错误。同时,Go语言的错误处理机制也十分完善,使得程序可以更加稳定和可靠。