Go基础|青训营笔记

122 阅读2分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的第1篇笔记

go是一款高性能,高并发,支持垃圾回收的面向过程语言。对比传统的java等传统后端语言来说,其最大的特点是在语言层面提供了协程的支持,提高了并发性,也降低了学习的曲线。由于二者接触过这java,Python三门语言,并在课上学习了go,接下来就做一个对比。

语言名称gojavaPython
学习曲线后期较难
编译模式静态动态(无需编译)
编译时间短到忽略不计
并发实现语言层面JUC并发包标准库
速度适中
语法架构面向过程面向对象面向对象
变量类型强类型强类型弱类型

可以看到,Go实现了既简易又效率的两种最重要的特性,这也让其成为了目前最吃香的新兴语言之一。

GO的一些基本语法

声明字符串

var a = "asd" // 

声明整数

var b,c int = 1,2 // 整数

声明浮点数

var e float64 //声明

if条件语句

if 7%2 == 0 {
   // 必须直接大括号
} else {
}

for循环

//只有for循环

for{
   //死循环
}

c风格for循环


for j:=8 ; j < 9;j++{
   //经典for循环,可省略三段其中两段
}

从上述代码中,可以看到,go的语法处于c与python之间,既保留了c的主体语法框架,还简化了繁琐的语法结构,加快了开发效率。

数组

声明数组

var a[5]int

声明并赋值

b := [5]int{1,2,3,4,5}
切片

声明并创建切片

s := make([]string,3)

像python一样切片,不包括第5个元素

s[2:5] 
字典

使用make(map)创建map,类似字典。

m := make(map[string]int)

删除键值对

delete(m,"one")

使用ok变量了解键值对是否存在

r,ok:=m["unknow"]

遍历map

for k, v:= m{
   fmt.Println(k,v)//
}
结构体

定义某结构体

type user struct {
   name string 'json:"n "'//转码json后此条叫n
   password string
}

声明结构体函数

func (u user) chechPassword(password string) bool{//声明结构体函数
   return u.password == password
}
结语

以上就是go语言的基本语法了,也是我第一次课的笔记,希望能够帮到大家哦