go语言笔记 | 青训营笔记

71 阅读2分钟

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

1.golang并发编程之通道channel Go提供了一种称为通道的机制,用于在goroutine之问共享数据。当您作为goroutine执行并发活动时,需要在goroutine之间共享资源或数据,通道充当goroutine之间的管道(管道)并提供一种机制来保证同步交换。需要在声明通道时指定数据类型。我们可以共享内置、命名、结构和引用类型的值和指针。数据在通道上传递:;在任何给定时间只有一个goroutine可以访问数据项:因此按照设计不会发生数据竞争。 通道由make函数创建,该函数指定chan关键字和通道的元素类型。 创建无缓冲和缓冲通道的代码块:

Unbuffered := make(chan int) //整型无缓冲通道
buffered := make(chan int, 10) //整型有缓冲通道

使用内置函数make创建无缓冲和缓冲通道,make的第一个参数需要关键字chan,然后是通道允许交换的数据类型。 如果要将值发送到通道的代码块需要使用<-运算符: 语法

goroutine1 := make(chan string,5) //字符串缓冲通逆
goroutine1 <- "hello" //涯过通道发送字符串

通道的发送和接收特性

  • 对于同一个通道,发送操作之间是互斥的,接收操作之间也是互斥的。
  • 发送操作和接收操作中对元素值的处理都是不可分割的。
  • 发送操作在完全完成之前会被阻塞。接收操作也是如此。 2.gorm的一些介绍 orm简介 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库(如mysql数据库)存在的互不匹配的现象的技术。简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。 一定要记得go mod 以及 go init,而且只能有一个main函数,gorm相当于可以不用学习mysql,直接用gorm的语法就可以使用mysql数据库,相当于有人帮我封装好了,使用起来更为的方便,里面会建立一种与mysql之间的一种映射关系,可以更改数据,建表等等。十分的方便。