自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 接口interface

定义:接口是一种抽象的类型,是一组method的集合,里头只有method方法,没有数据成员。先定义接口,然后多个struct类型去实现接口里的方法,就可以通过接口变量去调用struct类型里实现的方法。猫科动物可以是一个interface,哺乳动物可以是另一个interface,猫这个struct类型可以实现猫科动物和哺乳动物这2个interface里的方法。比如动物都会叫唤,那可以先定义一个名为动物的接口,接口里有叫唤方法speak,然后猫和狗这2个struct类型去实现各自的speak方法。

2023-12-21 21:06:35 383

原创 defer语义

如果在函数内调用了多次defer,那在函数return之前,defer的函数调用满足LIFO原则,先defer的函数后执行,后defer的函数先执行。上例中,被defer的函数fmt.Println的参数i在执行到defer这一行的时候,i的值是0,fmt.Println的参数就被确定下来是0了,因此最终打印的结果是0,而不是1。执行顺序是函数f先把要返回的值6赋值给result,然后执行被defer的函数func,result被修改为42,然后函数f返回result,也就是返回了42。

2023-12-21 07:58:27 807

原创 goroutine和channel

因为fetchChannel里的value := <-ch执行之后,main里的ch<-a就不再阻塞,继续往下执行了,所以可能main里最后的fmt.Println比fetchChannel里的fmt.Printf先执行,main执行完之后程序就结束了,所有goroutine自动结束,就不再执行fetchChannel里的fmt.Printf了。channel被close后,如果channel还有值,接收方可以一直从channel里获取值,直到channel里的值都已经取完。

2023-12-21 07:56:23 803

原创 接口interface

先定义接口,然后多个struct类型去实现接口里的方法,就可以通过接口变量去调用struct类型里实现的方法。猫科动物可以是一个interface,哺乳动物可以是另一个interface,猫这个struct类型可以实现猫科动物和哺乳动物这2个interface里的方法。只要有某个方法的实现使用了指针接受者,那给包含了这个方法的interface变量赋值的时候要使用指针。比如动物都会叫唤,那可以先定义一个名为动物的接口,接口里有叫唤方法speak,然后猫和狗这2个struct类型去实现各自的speak方法。

2023-12-21 07:55:30 726

原创 go类型转换

注意:Go不支持隐式类型转换,要做数据类型转换必须按照type_name(expression)方式做显式的类型转换。// total_weight和num都是整数,相除结果还是整数。

2023-12-21 07:54:48 369

原创 递归函数的

【代码】递归函数的。

2023-12-21 07:54:11 304

原创 map集合

注意: 如果key不存在,通过map[key]访问不会给map自动插入这个新key。Go语言里的map底层是通过hash实现的,是一种无序的基于<key, value>对组成的数据结构,key是唯一的,类似python的dict。len(map):通过内置的len()函数可以获取map里<key, value>对的数量。删除key,参数为map和对应的key。因此切片slice,函数类型function,集合map,不能用作map的key。如果只是声明map,但没有初始化,只能读,不能写。

2023-12-21 07:52:22 304

原创 range迭代

range可以用于for循环,对字符串,数组array,切片slice,集合map或通道channel进行迭代。有2种方法可以对string进行range遍历,一种是只拿到字符串的下标索引,一种是同时拿到下标索引和对应的值。有如下2种方法可以遍历map,一种是拿到key,一种是拿到key,value。对channel进行range迭代,会循环从channel里取数据。// 方法1:可以通过range拿到字符串的下标索引。// 方法1,拿到key,再根据key获取value。// 方法1,拿到行索引。

2023-12-21 07:51:48 310

原创 切片Slice

如果dstSlice的长度M小于srcSlice的长度N,则只会拷贝srcSlice里的前M个元素到目标切片dstSlice里。但是如果函数使用切片指针作为参数,在函数体内可以通过切片指针修改外部切片的值,比如下例里的change2函数。冒号:截取后的新slice变量底层有个指针,会指向原数组或者原切片的数组空间,对新切片的修改也会影响原数组或者原切片。append不改变原切片的值,比如下例里的append(slice, 4)并不会改变slice的值。Go数组的长度在定义后是固定的,不可改变的。

2023-12-21 07:51:13 959

原创 golang 添加和读取列表的日期格式化

【代码】golang 添加和读取列表的日期格式化。

2023-11-14 15:00:58 97 1

原创 云服务器关闭ping命令

【代码】云服务器关闭ping命令。

2023-07-20 17:51:54 61 1

原创 mysql8.0.30 配置主从同步和解除主从

【代码】mysql8.0.30 配置主从同步和解除主从。

2023-06-25 16:22:07 314

原创 goland 引入gin后页面爆红

gin 框架基本引入

2023-06-19 15:39:25 316 2

原创 golang基础学习

golang基础数据类型

2023-06-13 20:16:18 64 1

原创 win11 使用JMeter5.5

win11配置Jmeter

2023-01-31 10:42:33 168

原创 display:flex的五大属性

css display属性中的flex相关联的属性信息

2023-01-28 10:54:38 1440

原创 rabbitmq安装和扩展插件

rabbitmq安装和扩展操作

2022-11-28 15:20:26 1586

原创 php 魔术方法之__invoke()

class Demo{ //实例化类后,再使用函数的方式调用 public function __invoke() { // TODO: Implement __invoke() method. echo '方法时调用'; }}$demo = new Demo();$demo(); //实例化类后,再以函数的方式调用事触发...

2022-04-23 11:01:12 261

原创 java入门只maven配置

Java中Maven配置1,配置本地镜像<localRepository>D:\apache-maven-3.8.3\repository</localRepository>2, mirror配置阿里云镜像<mirror> <id>aliyunmaven</id> <mirrorOf>*</mirrorOf> <name>阿里云公共仓库</name> <url>

2022-04-15 23:28:22 548

原创 mysql关闭外键约束和查看外键约束

##关闭外键约束SET foreign_key_checks = 0;SHOW VARIABLES like ‘%foreign_key%’

2021-11-21 20:10:42 340

原创 spring中的注解

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2021-11-16 17:35:54 364

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除