- 博客(126)
- 收藏
- 关注
原创 Linux从入门到精通(十二)——shell编程
1、shell和shell脚本2、shell脚本的创建与运行3、shell变量4、shell的基本语法(变量、变量表达式测试、流程控制、循环结构、函数、数组)
2022-11-23 21:06:05
1371
原创 Linux从入门到精通(十)——进程管理
1、进程的分类;2、进程的状态和属性;3、父进程与子进程;4、进程管理命令(ps、top、kill、nice、pstree、&、jobs)
2022-11-23 20:58:33
742
原创 Linux从入门到精通(九)——Linux编程
vi的详细使用(工作方式、快捷键),熟练掌握vi,在开发中是非常方便的gcc编译器和gdb调试器的使用make工程管理
2022-11-23 20:50:21
2336
原创 Linux从入门到精通(八)——Linux磁盘管理
1. linux 文件系统类型2. linux 文件系统配置文件 3. 文件系统操作命令 df、du、Fdisk、Mkfs、Mount、磁盘配额、umount
2022-11-23 20:43:53
833
原创 Go项目优化——动态缓存Redis的使用
Go项目优化——使用Redis作为动态缓存本文使用的第三方包是github.com/gomodule/redigo/redis,讲述了如何使用go连接redis、连接池、以及在项目中的使用。
2022-10-15 18:05:16
1435
原创 Golang——通过实例了解并解决CORS跨域问题
通过一个基于简单易懂的例子,了解前后端交互时出现的CORS跨域问题,包括跨域问题出现的原因、前后端两种解决方法!!!例子技术栈:后端使用:golang net/http前端使用:js express http-proxy-middleware
2022-09-20 11:10:34
1757
原创 Go语言——快速使用Markdown解析库
返回一个针对用户生成内容的策略,该内容是HTML所见即所得工具和Markdown转换的结果。您可以安全地输入用户提供的数据,速度快,支持通用扩展(表,智能标点符号替换等),并且对于所有utf-8(unicode)都是安全的输入。若不能保证待解析的内容安全性,例如来自于用户提供的内容,则需要进行内容过滤来保证安全。设计的目的是通过简单、轻量级的方式来添加格式,而不需要使用 HTML。MarkdownBasic 是一个方便简单渲染的函数,它处理没有启用扩展的markdown输入。并应用给定的策略允许列表。
2022-09-12 22:14:01
2397
1
原创 Golang高性能日志库zap + lumberjack 日志切割组件详解
Golang 高性能日志库 zap 的详细使用!!!Gin集成zap!!!lumberjack 日志切割组件的详细使用!!!
2022-09-01 21:08:19
7738
1
原创 Go代码格式化——gofmt的使用
Gofmt格式化Go程序。它使用制表符进行缩进,使用空格进行对齐。如果没有显式路径,它将处理标准输入。给定一个文件,它对文件进行操作;给定一个目录,它递归地操作该目录中的所有.go文件。(忽略以句点开头的文件。)...
2022-09-01 10:59:44
5146
原创 Go语言——测试与性能
要编写个新的测试模块,需要创建个名称以_test.go结尾的文件,该文件包含TestXxx函数,最后将该文件放在与被测试的包相同的包目录中。实际上,这里所说的对CPU使用情况的取样就是对当前的goroutine的堆栈上的程序计数器的取样,由此就可以从样本记录中分析哪些代码是计算时间最长,或者最耗CPU资源的部分了。由单元测试的代码,触发运行的被测试代码的占所有代码行数的比例,被称为测试覆盖率,代码覆盖率不一定完全精准,但是可以作为参考,可以有助于测试和预计覆盖率之间的差距,...
2022-07-17 18:43:51
2083
1
原创 Go微服务(三)——gRPC详细入门
这里会联合protobuf语法以及protobuf如何去定义rpc服务,前面我们只生成了结构体,现在我们要让他为我们同时把接口生成,有了响应的接口,我们就再也不用去手写接口了。gRPC是什么可以用官网的一句话来概括:视频里的:跨语言的RPC技术:主流语言都支持。基于Protobuf 消息格式:高效二进制协议。基于HTTP2协议通讯:Protobuf ON HTTP2:博客里的:既然是 server/client 模型,那么我们直接用 Restful API 不是也可以满足吗,为什么还需要RPC呢?下面我们
2022-07-10 22:53:02
1234
1
原创 Go微服务(二)——Protobuf详细入门
Protobuf详细入门:Protobuf是Protocol Buffers的简称,它是Google公司开发的⼀种数据描述语⾔,并于2008年对外开源。
2022-07-02 15:02:52
1556
1
原创 Go微服务(一)——RPC详细入门
RPC是远程过程调⽤的简称,是分布式系统中不同节点间流⾏的通信⽅式。在互联⽹时代,RPC已经 和 IPC⼀样成为⼀个不可或缺的基础构件。因此Go语⾔的标准库也提供了⼀个简单的RPC实现,我们 将以此为⼊⼝学习RPC的各种⽤法。Go语⾔的RPC包的路径为net/rpc,也就是放在了net包⽬录下⾯。因此我们可以猜测该RPC包是建⽴ 在net包基础之上的。在第⼀章“Hello, World”⾰命⼀节最后,我们基于http实现了⼀个打印例⼦。下⾯ 我们尝试基于rpc实现⼀个类似的例⼦。其中Hello⽅法必须满⾜
2022-06-19 14:01:01
4236
4
原创 每日一题(2022-05-19)——最少移动次数使数组元素相等 II
462. 最少移动次数使数组元素相等 II题目描述:给你一个长度为 n 的整数数组 nums ,返回使所有数组元素相等需要的最少移动数。在一步操作中,你可以使数组中的一个元素加1或者减1。示例1:输入:nums = [1,2,3]输出:2解释:只需要两步操作(每步操作指南使一个元素加 1 或减 1):[1,2,3] => [2,2,3] => [2,2,2]示例2:输入:nums = [1,10,2,9]输出:16思路:使用中位数即最优策略:为了方
2022-05-19 08:44:50
238
原创 每日一题(2022-05-17)——验证外星语词典
目录953. 验证外星语词典题目描述:题解:提交结果:953. 验证外星语词典题目描述:题解:func isAlienSorted(words []string, order string) bool { // 初始化一个map,代表在新字典序对应的权重 alphabetMap := make(map[byte]int) for i, i2 := range order { alphabetMap[byte(i2)] = i } ans := true for i := 0
2022-05-17 18:38:56
115
原创 每日一题(2022-05-16)——后继者
目录面试题 04.06. 后继者题目描述:题解:提交结果:面试题 04.06. 后继者题目描述:题解:直接进行中序遍历(左,根,右),按照中序遍历的顺序,依次加入到切片中,然后遍历这个切片去对比p即可:func inorderSuccessor(root *TreeNode, p *TreeNode) *TreeNode { ans:=make([]TreeNode,0) ans = ldr(root,&ans) for i := 0; i < len(ans)-1;
2022-05-16 17:40:58
122
原创 每日一题(2022-05-13)——一次编辑(双百通过)
面试题 01.05. 一次编辑题目描述:思路: firstLen := len(first) // 第一个字符串的长度 secondLen := len(second) // 第二个字符串的长度 differVal := math.Abs(float64(firstLen - secondLen)) // 二者长度的差值 longStr := "" // 用于存放长的那个字符串 shortStr := "" // 用于存放短的那个字符串整体可以考虑三种情况:differVal &g
2022-05-13 19:26:26
92
原创 每日一题(2022-05-08)——数组中重复的数据
目录442. 数组中重复的数据题目描述:题解:提交结果:442. 数组中重复的数据题目描述:给你一个长度为 n 的整数数组 nums ,其中 nums 的所有整数都在范围 [1, n] 内,且每个整数出现 一次 或 两次 。请你找出所有出现 两次 的整数,并以数组形式返回。你必须设计并实现一个时间复杂度为 O(n) 且仅使用常量额外空间的算法解决此问题。题解:func findDuplicates(nums []int) []int { // 先排序,时间复杂度为O(n) sort.I
2022-05-08 10:46:50
443
原创 每日一题(2022-05-06)——最近的请求次数
目录933. 最近的请求次数題目描述:题意解释:题解:提交结果:933. 最近的请求次数題目描述:题意解释:就是返回时间在[t-3000, t]的请求数:借助例子来理解:["RecentCounter", "ping", "ping", "ping", "ping"][[],[642],[1849],[4921],[5936]]在代码中就是:func main() { rc := Constructor() // 初始化一个空切片 fmt.Println(rc.Ping(642)
2022-05-06 21:12:39
286
原创 每日一题(2022-05-05)——乘积小于 K 的子数组
目录713. 乘积小于 K 的子数组题目描述:题解:方式1(好理解,但是时间复杂度高):提交结果:方式2(滑动窗口):思路:提交结果:713. 乘积小于 K 的子数组题目描述:给你一个整数数组 nums 和一个整数 k ,请你返回子数组内所有元素的乘积严格小于 k 的连续子数组的数目。题解:方式1(好理解,但是时间复杂度高):func numSubarrayProductLessThanK(nums []int, k int) int { count := 0 for i := 0;
2022-05-05 10:20:09
312
原创 每日一题(2022-05-04)——找出游戏的获胜者
1823. 找出游戏的获胜者题目描述:题解:func findTheWinner(n int, k int) int { // eg:n=5 friends = [1,2,3,4,5] 里面的值就是第几个小朋友 friends := make([]int, n) for i := 0; i < len(friends); i++ { friends[i] = i + 1 } // 指针 p := 0 for { // 如果只剩1人,就是赢家 if len(fr
2022-05-04 21:32:55
697
原创 每日一题(2022-05-01)——两棵二叉搜索树中的所有元素
目录1305. 两棵二叉搜索树中的所有元素题目描述:思路:题解:提交结果:1305. 两棵二叉搜索树中的所有元素题目描述:给你root1和 root2 这两棵二叉搜索树。请你返回一个列表,其中包含 两棵树 中的所有整数并按 升序 排序。.思路:对俩树进行中序遍历,遍历后得到的是俩有序的数组,再对这俩数组根据大小,合并到一个新的数组,即可。题解:func getAllElements(root1 *TreeNode, root2 *TreeNode) []int { ans := ma
2022-05-01 10:34:13
89
原创 每日一题(2022-04-30)—— 最小差值 I
目录908. 最小差值 I题目描述:思路:题解:提交结果:908. 最小差值 I题目描述:给你一个整数数组 nums,和一个整数 k 。在一个操作中,您可以选择 0 <= i < nums.length 的任何索引 i 。将 nums[i] 改为 nums[i] + x ,其中 x 是一个范围为 [-k, k] 的整数。对于每个索引 i ,最多 只能 应用 一次 此操作。nums 的 分数 是 nums 中最大和最小元素的差值。在对 nums 中的每个索引最多应用一次上述操作后,
2022-04-30 21:32:58
188
原创 Go学习——runtime.Caller()函数
目录函数:参数解释:例子:函数:func Caller(skip int) (pc uintptr, file string, line int, ok bool)Caller()报告当前go程调用栈所执行的函数的文件和行号信息。参数解释:skip:上溯的栈帧数,0表示Caller的调用者(Caller所在的调用栈)(0-当前函数,1-上一层函数,…)。pc :调用栈标识符file:文件路径line:该调用在文件中的行号ok:如果无法获得信息,ok会被设为false例子:
2022-04-29 21:47:21
3184
原创 每日一题(2022-04-28)—— 按奇偶排序数组
905. 按奇偶排序数组题目描述:给你一个整数数组 nums,将 nums 中的的所有偶数元素移动到数组的前面,后跟所有奇数元素。返回满足此条件的 任一数组 作为答案。题解:func sortArrayByParity(nums []int) []int { i := 0 // 遍历nums 遇到奇数 塞到后面,并删除当前位置 // 这里遍历的是nums 里面nums的修改不会影响这里的遍历 for _, v := range nums { if v%2 != 0 { num
2022-04-28 08:42:41
517
原创 每日一题(2022-04-27)—— 太平洋大西洋水流问题
文章目录417. 太平洋大西洋水流问题问题描述题解提交结果417. 太平洋大西洋水流问题问题描述有一个 m × n 的矩形岛屿,与 太平洋 和 大西洋 相邻。“太平洋” 处于大陆的左边界和上边界,而 “大西洋” 处于大陆的右边界和下边界。这个岛被分割成一个由若干方形单元格组成的网格。给定一个 m x n 的整数矩阵 heights , heights[r][c] 表示坐标 (r, c) 上单元格 高于海平面的高度 。岛上雨水较多,如果相邻单元格的高度 小于或等于 当前单元格的高度,雨水可以直
2022-04-27 22:02:43
434
原创 每日一题(2022-04-26)—— 三维形体投影面积
883. 三维形体投影面积题目描述在 n x n 的网格 grid 中,我们放置了一些与 x,y,z 三轴对齐的 1 x 1 x 1 立方体。每个值 v = grid[i][j] 表示 v 个正方体叠放在单元格 (i, j) 上。现在,我们查看这些立方体在 xy 、yz 和 zx 平面上的投影。投影 就像影子,将 三维 形体映射到一个 二维 平面上。从顶部、前面和侧面看立方体时,我们会看到“影子”。返回 所有三个投影的总面积 。思路正视图:每一行最大值之和;侧视图:每一列最大值之和;
2022-04-26 20:08:12
419
原创 每日一题(2022-04-25)——随机数索引
目录398. 随机数索引题目描述:题解:提交结果:398. 随机数索引题目描述:给你一个可能含有 重复元素 的整数数组 nums ,请你随机输出给定的目标数字 target 的索引。你可以假设给定的数字一定存在于数组中。(target 是 nums 中的一个整数)实现 Solution 类:Solution(int[] nums) 用数组 nums 初始化对象。int pick(int target) 从 nums 中选出一个满足 nums[i] == target 的随机索引 i 。如果
2022-04-25 17:42:08
197
空空如也
go的微服务框架有什么推荐的吗
2023-02-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人