GO语言基础语法
什么是go语言
- 高性能、高开发
- 语法简单
- 丰富的标准库
- 完善的工具链
- 静态链接
- 快速编译
- 跨平台
- 垃圾回收
开发坏境
安装Golang
网址:go.dev/
配置集成开发环境
基础语法
hello world
package main
import(
"fmt"
)
fun main(){
fmt.Println("hello world")
}
变量
go语言是一门强类型语言,每一个变量都有它自己的变量类型。 常见的变量类型包括 字符串 整数 浮点型、布尔型等。
go语言里面的变量的声明,在go语言里面变量的声明有两种方式,一种是通过 var name string = "" 这种方式来声明变量,声明变量的时候,一般会自动去推导变量的类型。如果有需要,也可以显示写出变量类型。另一种声明变量的方式是: 使用变量 冒号 := 等于值。 下面来讲说常量。常量的话就是把 var 改成const,值在一提的是go语言里面的常量,它没有确定的类型,会根据使用的上下文来自动确定类型。
package main
import "fmt"
func main() {
var a int = 27
fmt.Println(a)
}
if-else
go语言 里面的 if else 写法和 C 类似。不同点一是 if 后面没有括号。如果你写括号的话,那么在保存的时候你的编辑器会自动把你去掉。第二个不同点是 Golang 里面的if ,它必须后面接大括号,就是你不能像 C 一样,直接把 if 里面的语句同一行。
package main
import (
"fmt"
)
func main() {
if 7%2 == 0 {
fmt.Println("7 is even")
} else {
fmt.Println("7 is odd")
}
}
循环
只有for循环,可以用break跳出,continue继续
switch语句
可以使用任意的变量类型,不需要用break退出,会一直匹配到没有为止。
数组
数组就是一个具有编号且长度固定的元素序列
切片
切片可以任意更改长度
range
对于一个 slice 或者一个 map 的话,我们可以用 range 来快速遍历。 range 遍历的时候,对于数组会返回两个值,第一个是索引,第二个是对应位置的值。如果我们不需要索引的话,我们可以用下划线来忽略。
结构体
结构体是带类型的字段的集合。
错误处理
错误处理 在 go 语言里面符合语言习惯的做法就是使用一个单独的返回值来传递错误信息。 不同于 Java 自家家使用的异常。go语言的处理方式,能够很清晰地知道哪个函数返回了错误,并且能用简单的 if else 来处理错误。 在函数里面,我们可以在那个函数的返回值类型里面,后面加一个 error, 就代表这个函数可能会返回错误。 那么在函数实现的时候, return 需要同时 return 两个值,要么就是如果出现错误的话,那么可以 return nil 和一个 error。如果没有的话,那么返回原本的结果和 nil。
JSON
go语言 里面的 JSON 操作非常简单,对于一个已有的结构体,我们可以什么都不做,只要保证每个字段的第一个字母是大写,也就是是公开字段。那么这个结构体就能用 JSON.marshaler 去序列化,变成一个 JSON 的字符串。
时间处理
在go语言里面最常用的就是 time.now() 来获取当前时间,然后你也可以用 time.date 去构造一个带时区的时间,构造完的时间。上面有很多方法来获取这个时间点的年月日小时分钟秒,然后也能用点 sub 去对两个时间进行减法,得到一个时间段。时间段又可以去得到它有多少小时,多少分钟、多少秒。