- 博客(83)
- 资源 (9)
- 收藏
- 关注
原创 三十六、Gin注册功能-检查账号是否存在
在register.go中进行调用IsExist方法。2、在cms.go中进行初始化数据库连接方法。1、在cms.go中添加数据库连接方法。
2024-09-10 16:43:01
670
原创 三十五、Gin注册功能实战
bcrypt.GenerateFromPassword 进行密码加密,完成encryptPassword函数。若多次打印会发现结果是不一样的。
2024-09-10 11:37:12
686
原创 三十二、初识Gin框架
定义常量路径前缀 api,创建函数CmsRouter,使用r.Group函数进行分组,分组可以定义一些方法是测试方法或需要/不需要鉴权的方法,提升代码可读性等好处。在实际开发中不可能将方法实现放在main中,所以在internal包下创建新包api包,并在包下创建routers.go。在services包下创建hello.go,并在其中完成具体业务逻辑。在services包下创建cms.go并在其中完成一些实例返回。在cmd包下搭建main方法,main方法中直接复制。在项目路径下,终端中输入。
2024-09-03 11:21:51
621
原创 三十一、gorm快速入门
动态表面的好处可以动态的获取表名进行灵活的查询,比如一些流水表的名字后面会加上日期的这里是改写了TableName方法,使用此方法后就删除.Table("account")调用。必须与account表字段与字段类型保持一致。在终端中输入以下命令。
2024-09-02 15:42:15
386
原创 三十、error的处理策略
使用结构体自定义错误包含code与msg,在执行方法中触发条件后进行错误code与msg赋值,在通过类型转换打印出错误和错误codeCode intMsg stringif err!= nil {
2024-08-29 16:15:24
210
原创 二十九、channel的select
在使用channel时使用select,当有一个channel有数据可读可写时,会执行对应的case分支这样就可以避免channel死锁以及监听多个chennel。
2024-08-28 14:28:30
298
原创 二十八、channel的传递
通过结果我们看到效率明显提高了,一执行就完成了数据的发送,达到了并行的效果,因为当给缓冲的时候数据可以直接写入channel而不用关心数据是否有人在读。简单来说就是有缓冲空间就可以直接写入,没有缓冲空间就必须一写一读的方式执行。在其中增加了close方法,如果不增加则会发生死锁错误,意味着如果不进行关闭,消费者中wg.done就会一直阻塞,又导致wg.wait方法阻塞。注意当符号
2024-08-28 10:56:15
304
原创 二十七、有缓冲channel与无缓冲channel
这里无缓冲会报错,死锁,原因这样执行时候并没有给其空间所以一致卡在发送数据。当给予缓冲后此时程序运行没有问题,并且能够正常输出1。在go语言的channel中有两种写法分别是。此时可以正常发送与接收到值。
2024-08-28 10:18:45
206
原创 二十五、go语言的通道
go语言中的goroutine可以看成线程,但是又不能看成和其它语言一样的线程,因为在go语言中,goroutine之间的通信和其它语言不一样,例如如果在java中多条线程访问一个内存中数据在访问前需要进行加锁避免其它线程进入进行修改,本质上是通过共享了内存进行通信。而在go中是不一样的,在go中是“不要通过共享内存进行通信,而是通过通信来共享内存”在select中最先收到消息的执行后续代码,当创建两个ping方法时,ping sleep了3秒,ping2 sleep了2秒所以先执行了ping2。
2024-08-27 10:40:31
461
原创 二十四、goroutine
因为goroutine直接执行后面的代码后理解返回,没有其他程序阻止的话就执行完毕后结束,所以如果我们想看到timeSleep方法执行结果可以再添加一个sleep方法阻止退出。与java一样,go在幕后使用线程来并发管理,但是不需要直接管理线程,创建一个goroutine只需要占用几kb的内存,另外销毁的效率也非常的高。理解:举个通俗的例子来理解两者之间的区别,在自己家同时制作多个蛋糕叫并发,与朋友家一起制作,制作完成后汇集在一起叫做并行。这里我们就可以看到timeSleep方法的返回结果。
2024-08-26 09:45:06
224
原创 二十二、处理字符串
在go语言中提供了strings包,提供了一套完备的字符串处理函数。无论是查找单个字母还是查找单词,会打印出出现需要查找次所在的下标。1、将字符串转为大小写。
2024-08-23 14:16:05
289
原创 二十一、字符串
因为我这里string换行了,所以打印出来的也换行了。解释型字符串字面量可以包含由反斜杠引导的转义字符。使用反引号包含的字符串,写什么展示出来的就是什么。如果在其中加入转义字符不会有作用,例如。单引号(仅用于单字符字面量)双引号(仅用于字符串字面量)用双引号包含的字符串。要求+左右均为字符串。
2024-08-23 14:04:58
342
原创 关于人类的多任务
甚至在做公交车的时候也能把书看进去了,都拜当年的“抗干扰”能力的训练。以个人十几年的职场经验来看,答案是否定的,我这种否定并不是说有人适合有人不适合,而是基于当下执行任务的状态来说的,虽然说很多时候看似多线程执行任务效率很高,但实际上来回切换业务会打断正在进入此时任务的状态,我想我们都有这么一个时刻,当我们好不容易静下心来投入到一件事情中去,突然被人打断后再想进入那件事情是需要时间的而且会变的急躁,越是急躁就越难以进入状态,你可以想象一下自己在熟睡中突然被一个电话吵醒...
2024-08-22 15:55:36
411
原创 二十、接口
接口比较抽象,它定义了一种规范,而不用关心具体实现,用通俗的话来说就仿佛一个电脑上的高清接口,只要符合这种“函数签名”的就可以使用,而不关心你用的是什么外接显示器。解释:定义一个接口要是使用一个关键词 interface就像定义一个结构体要用struct在接口中定义了一个接口方法叫PowerOn(),返回值为错误类型前面的T850结构体与接收参数不用关心,主要是要在方法后面写上PowerOn() error来声明实现这个接口方法解释:创建接口Rebot,在接口中创建名为PowerO
2024-08-22 15:23:51
403
原创 十八、使用方法
在func后面的括号中的参数,叫做接收者,这样的好处在于如果我们直接用函数去使用Move结构体是一种重复的操作,但是使用此种方法则可以灵活的使用,避免每次的重复操作。在go语言中方法类似于函数,但是区域在于结构为func关键词后面还有个参数部分。
2024-08-22 10:38:50
239
原创 又是一年秋
其实这是一方面,还有一方面是别人知道自己不知道,遇到一个问题,你认为你自己知道这个很难,那么很容易误判并产生一个思想:自己不可能学会,倒不如早点放弃不去浪费时间,但是其实你根本不知道你自己不知道,事实上世界上的很多问题你同学能掌握的,你同事能掌握的,你朋友能掌握的那么我可以说你必然也可以掌握...那么在自我构建知识体系,提升技术水平的过程中自然也必然会遇到一些问题,其实我不会说让你我去坚持克服困难,这种没有意义的话,而是想告诉你我就是“你不知道 你不知道”的思想。
2024-08-21 17:11:11
245
原创 十五、结构体
Movie是变量名,在这里的变量名称使用大写字母开头,在go语言中变量使用大写字母开头代表可以被其它包引用(需要先导入包),小写字母开头,则对包外是不可见的,但是它们在整个包的内部是可见并且可用的(像面向对象语言中的private)所谓结构体是数据组成的结构,一系列具有指定数据类型的字段,能够通过单个变量引用一系列的值。fmt.Printf("%+v\n", m),使用可以指定占位符形式的输出,struct关键词指定为结构体(类似java中的枚举)声明了一个变量m为结构体。更简短的方法(不推荐)
2024-08-21 10:00:22
286
原创 go语言的占位符
The value is: map[string]interface {}{"age":18, "name":"路多辛"}fmt.Printf("The value is: %s\n", []byte("路多辛")) // 输出 路多辛。fmt.Printf("The value is: %s\n", "路多辛的博客") // 输出 路多辛的博客。fmt.Printf("The value is: %.3s\n", "路多辛的博客") // 输出 路多辛。
2024-08-21 09:36:50
1215
1
原创 十一、数组与切片
切片长度:指切片中元素的数量,可以使用len()函数查询其切片的长度。切片容量:指切片底层数组的长度,可以使用cap()函数查看容量当定义make([]int, 4, 6),长度为4,容量为6。
2024-08-19 17:40:44
630
原创 十、for循环语句
当然for语句通常是用来遍历数据的,例如用for语句去遍历数组。(这里的defer所在的位置不重要,反正会最后执行)在函数执行完毕后执行defer 后函数。当然我们可以把它写在一起,例如。例3,使用defer调用方法。例1,单个defer。例2,多个defer。
2024-08-15 14:31:56
185
原创 六、go函数
在函数的入参中添加numbers …[类型] 即可,在调用方法入参数中,每个值用,号进行分割。在java中也有类似的写法只是在go语言中参数类型顺序颠倒了而已。**在go语言中可以选择定义或不定义参数,定义一个或者多个参数。但是有一种情况当我们自己也不知道入参多少的时候怎么办?(这里我写了一个简单的判断是否是偶数的函数)
2024-08-08 11:54:55
438
原创 五、go指针
指针是另一个与变量相关且必须掌握的要素。在 Go 语言中声明变量时, 将在计算机内存 中给它分配一个位置,以便能够存储、 修改和获取变量的值。
2024-08-08 09:56:42
230
springboot2集成druid,mysql,mybatis,swagger,
2018-10-29
es-demo 使用es-java-api 开箱即用
2018-10-08
apache-activemq-5.15.6-bin.tar.gz
2018-10-29
springboot2整合activemq的demo内含queue消息和topic消息
2018-10-29
spring-security 登录,权限管理,密码加密-开箱即用
2018-10-26
spring-boot2集成redis
2018-10-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人