GO语言基础语法 | 青训营笔记

85 阅读2分钟

Go语言的优点

  1. 高性能、高并发
  2. 语法简单、学习曲线平缓
  3. 丰富的标准库
  4. 完善的工具链
  5. 静态链接
  6. 快速编译
  7. 跨平台
  8. 垃圾回收

Go语言的缺点

  1. 缺少框架

go语言没有一个主要的框架。

  1. 错误处理

go语言通过函数和预期的调用代码简单地返回错误,很容易丢失错误发生的范围,因此很难向用户提供有意义的错误信息。

基础语法

变量

变量通常是用var声明,也可以使用短定义:=进行声明。短定义会自动推导变量的类型。

var age int = 20
age1 := 20     //可以使用fmt.Printf("%T", age)打印短定义变量类型
//用var一次性声明多个不同类型的变量
var(
age2 int = 20
name string = "zijie"
)

注意:未曾使用的变量会引发编译错误。

常量

常量的声明和变量差不多,只需把var改成const,不过常量可以不用专门声明常量类型。专门声明了类型的叫显式类型定义,没有声明的叫隐式类型定义。(注:未曾使用的常量不会引起编译错误。)

条件语句if else

多条件使用if-else if-else。注:else if和else只能在}后面,不能换行。

for循环

for后条件可以把初始值定义到前面,跳出循环条件定义到{}里面,不过要注意{}内i++的位置。也可以完全省略条件那就是完全循环。break 结束当前整个循环。continue 结束单次循环,整个循环还是会继续执行下去。

switch语句

switch语句中没有写条件就是默认的条件bool = ture。 switch默认情况下匹配成功后就不会执行其他case,fallthrough可以强制执行后面的一个case或者default语句,不会判断条件是否正确。

时间处理

time.Month 类型也实现了 String() 方法,用于将月份的整数表示转换为相应的英文字符串。因此,对于这段代码,t.Month() 方法返回值为 time.March 类型的值,它代表三月份的英文缩写字符串 "Mar",但在默认情况下会调用 String() 方法并输出完整的字符串 "March"。所以输出的结果中是 March 而不是 Mar。

t := time.Date(2022, 3, 27, 1, 25, 36, 0, time.UTC)
fmt.Println(t.Year(), t.Month(), t.Day(), t.Hour(), t.Minute())  //2022 March 27 1 25
//可以使用int(t.Month())强制转换