摘要:
一、安装 1、下载redis-6.2.1.tar.gz放到opt/目录 2、解压命令:tar -zxvf redis-6.2.1.tar.gz 3、解压后进入目录:cd redis-6.2.1 4、编译安装:make && make install 安装的默认目录是/usr/local/bin,我们 阅读全文
摘要:
原文出处:《Go 语言编程之旅》第四章4.1节 基于TCP的聊天室 1、服务端 新用户到来,生成一个User的实例,代表该用户。 type User struct{ ID int // 用户的唯一标识,通过GenUserID 函数生成 Addr string // 用户的IP地址和端口 EnterA 阅读全文
摘要:
递归 1、递归的概念 简单说,递归就是函数/方法自己调用自己,每次调用时传入不同的变量,递归有助于编程者解决复杂的问题,同时可以让代码变得简洁。 2、简单案例 2.1、分析下面代码的输出 func test(n int){ if n > 2{ n-- test(n) } fmt.println(n) 阅读全文
摘要:
栈 栈是一个先入后出的有序列表,栈是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表,允许插入和删除的一端,为变化的一端,称为栈顶,另一端为固定的一端,称为栈底。 最先放入栈中的元素在栈底,最后放入的元素在栈顶,而删除元素刚好相反,最后放入的元素最先删除,最先放入的元素最后删除。 阅读全文
摘要:
Go标准库的Cond Go 标准库提供 Cond 原语的目的是,为等待 / 通知场景下的并发问题提供支持。Cond 通常应用于等待某个条件的一组 goroutine,等条件变为 true 的时候,其中一个 goroutine 或者所有的 goroutine 都会被唤醒执行。 Cond 是和某个条件相 阅读全文
摘要:
排序 冒泡排序 func BubbleSort(s []int)[]int{ for i := 0; i < len(s); i ++ { for j := i + 1; j < len(s); j ++{ if s[i] > s[j]{ s[i],s[j] = s[j],s[i] } } } re 阅读全文
摘要:
链表 单向链表 定义一个HeroNode // 定义一个HeroNode type HeroNode1 struct{ no int name string nickname string next *HeroNode } 给链表添加一个节点 方式一:直接在链表最后加入 func InsertHer 阅读全文
摘要:
队列 队列介绍 队列是一个有序列表,可以用数组或是链表来实现。 遵循先入先出的原则,即先存入队列的数据,要先取出,后存入的要后取出。 数组模拟队列 队列本身是有序列表,因为队列的输出,输入是分别从前后端来处理的,因此需要两个变量front及rear分别记录队列前后端的下标,front会随着数据输出而 阅读全文
摘要:
##RPC 一、简介 远程过程调用(Remote Procedure Call,RPC)是一个计算机通信协议 ; 该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额 外地为这个交互作用编程 ; 如果涉及的软件采用面向对象编程,那么远程过程调用亦可称作远程调用或远程方 法调用 ; 阅读全文