随笔分类 -  Go语言

Go语言的学习
摘要:Go 是强类型的语言,编译器在编译时会进行严格的类型校验。两个命名类型是否相同,参考如下1、两个命名类型相同的条件是两个类型声明的语句完全相同。2、命名类型和未命名类型永远不相同。3、两个未命名类型相同的条件是它们的类型声明宇面量的结构相同,并且内部元素的类型相同。4、通过类型别名语句声明的两个类型 阅读全文
posted @ 2021-09-23 11:26 算盘 阅读(44) 评论(0) 推荐(0) 编辑
摘要:1、引导程序整体结构的8个关键字package 定义包名import 导入包名const 常量声明var 变量声明func 函数定义defer 延迟执行go 并发语法糖return 函数返回 2、声明符合数据结构的4个关键字struct 定义结构类型interface 定义接口类型map 声明或创建 阅读全文
posted @ 2021-09-19 08:34 算盘 阅读(95) 评论(0) 推荐(0) 编辑
摘要:所属类型相同基础类型相同,且其中一个是未命名类型数据类型相同,将双向通道赋值给单向通道,且其中一个位未命名类型将默认值nil赋值给切片、字典、通道、指针、函数或接口 阅读全文
posted @ 2021-09-15 08:50 算盘 阅读(48) 评论(0) 推荐(0) 编辑
摘要:递归:重复调用函数自身实现循环称为递归;迭代:利用变量的原值推出新值称为迭代,或者说迭代是函数内某段代码实现循环; 阅读全文
posted @ 2021-09-10 13:08 算盘 阅读(47) 评论(0) 推荐(0) 编辑
摘要:context.Context是一个接口,该接口定义了四个需要实现的方法。具体签名如下:type Context interface { Deadline() (deadline time.Time, ok bool) Done() <-chan struct{} Err() error Value 阅读全文
posted @ 2021-09-05 09:43 算盘 阅读(68) 评论(0) 推荐(0) 编辑
摘要:func Create(name string) (file *File, err Error)根据提供的文件名创建新的文件,返回一个文件对象,默认权限是0666func NewFile(fd uintptr, name string) *File根据文件描述符创建相应的文件,返回一个文件对象fun 阅读全文
posted @ 2021-09-01 21:36 算盘 阅读(42) 评论(0) 推荐(0) 编辑
摘要:1、完全复制:集群中的每个节点都可以使用完整的存档2、高可用性:Etcd可用于避免硬件的单点故障或网络问题3、一致性:每次读取都会返回跨多主机的最新写入4、简单:包括一个定义良好、面向用户的API(gRPC)5、安全:实现了带有可选的客户端证书身份验证的自动化TLS6、快速:每秒10000次写入的基 阅读全文
posted @ 2021-08-28 11:37 算盘 阅读(204) 评论(0) 推荐(0) 编辑
摘要:1.一个操作系统线程对应用户态多个goroutine。2.go程序可以同时使用多个操作系统线程。3.goroutine和OS线程是多对多的关系,即m:n。 阅读全文
posted @ 2021-08-14 16:29 算盘 阅读(91) 评论(0) 推荐(0) 编辑
摘要:进程和线程1.进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位。 2.线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。 3.一个进程可以创建和撤销多个线程;同一个进程中的多个线程之间可以并发执行。 并发和并行1.多线程程序在一个 阅读全文
posted @ 2021-08-07 17:53 算盘 阅读(55) 评论(0) 推荐(0) 编辑
摘要:webSocket是什么1、WebSocket是一种在单个TCP连接上进行全双工通信的协议2、WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据3、在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行 阅读全文
posted @ 2021-08-01 15:26 算盘 阅读(167) 评论(0) 推荐(0) 编辑
摘要:当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组 稀疏数组的处理方法是:1、记录数组一共有几行几列,有多少个不同的值2、把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模 阅读全文
posted @ 2021-07-29 14:40 算盘 阅读(26) 评论(0) 推荐(0) 编辑
摘要:主要原因就是tcp数据传递模式是流模式,在保持长连接的时候可以进行多次的收和发。 “粘包”可发生在发送端也可发生在接收端:1.由Nagle算法造成的发送端的粘包:Nagle算法是一种改善网络传输效率的算法。简单来说就是当我们提交一段数据给TCP发送时,TCP并不立刻发送此段数据,而是等待一小段时间看 阅读全文
posted @ 2021-07-15 08:33 算盘 阅读(156) 评论(0) 推荐(0) 编辑
摘要:UDP协议UDP协议(User Datagram Protocol)中文名称是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联)参考模型中一种无连接的传输层协议,不需要建立连接就能直接进行数据发送和接收,属于不可靠的、没有时序的通信,但是UDP协议的实 阅读全文
posted @ 2021-05-16 16:56 算盘 阅读(163) 评论(0) 推荐(0) 编辑
摘要:TCP协议TCP/IP(Transmission Control Protocol/Internet Protocol) 即传输控制协议/网间协议,是一种面向连接(连接导向)的、可靠的、基于字节流的传输层(Transport layer)通信协议,因为是面向连接的协议,数据像水流一样传输,会存在黏包 阅读全文
posted @ 2021-04-19 16:26 算盘 阅读(304) 评论(0) 推荐(0) 编辑
摘要:接口是一个或多个方法签名的集合。 任何类型的方法集中只要拥有该接口'对应的全部方法'签名。 就表示它 "实现" 了该接口,无须在该类型上显式声明实现了哪个接口。 这称为Structural Typing。 所谓对应方法,是指有相同名称、参数列表 (不包括参数名) 以及返回值。 当然,该类型还可以有其 阅读全文
posted @ 2021-04-11 21:23 算盘 阅读(456) 评论(0) 推荐(0) 编辑
摘要:defer特性: 1. 关键字 defer 用于注册延迟调用。 2. 这些调用直到 return 前才被执。因此,可以用来做资源清理。 3. 多个defer语句,按先进后出的方式执行。 4. defer语句中的变量,在defer声明时就决定了。 defer用途: 1. 关闭文件句柄 2. 锁资源释放 阅读全文
posted @ 2021-04-03 20:07 算盘 阅读(76) 评论(0) 推荐(0) 编辑
摘要:函数定义时指出,函数定义时有参数,该变量可称为函数的形参。形参就像定义在函数体内的局部变量。 但当调用函数,传递过来的变量就是函数的实参,函数可以通过两种方式来传递参数: 值传递:指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。 引用传递:是指在调 阅读全文
posted @ 2021-03-30 17:28 算盘 阅读(127) 评论(0) 推荐(0) 编辑
摘要:1.三个语句都可以配合标签(label)使用2.标签名区分大小写,定以后若不使用会造成编译错误3.continue、break配合标签(label)可用于多层循环跳出4.goto是调整执行位置,与continue、break配合标签(label)的结果并不相同 阅读全文
posted @ 2021-03-12 10:41 算盘 阅读(78) 评论(0) 推荐(0) 编辑
摘要:主要是使用场景不同 for可以 遍历array和slice 遍历key为整型递增的map 遍历string for range可以完成所有for可以做的事情,却能做到for不能做的,包括 遍历key为string类型的map并同时获取key和value 遍历channel 阅读全文
posted @ 2021-03-01 17:02 算盘 阅读(151) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示