自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(130)
  • 问答 (1)
  • 收藏
  • 关注

原创 go语言for range与闭包传值的问题

go语言闭包与for循环参数问题

2023-01-08 18:47:42 305 1

原创 时区的区别及go语言的time库

go time库时间转化与使用

2022-07-04 11:52:51 803

原创 gorm datatypes.JSON用法与json.RawMessage读取前端传去的json数据存数据库

go 语言将 前端传递的json类型的数据存入数据库当中, 利用json.RawMessagr 和 datatypes.JSON

2022-06-21 14:02:38 4873

原创 学习随笔:ubuntu18.04-server版本安装及配置go环境及vscode,goland远程连接及gitlab秘钥配置及postman下载

1. 安装 ubuntu18.04-server版本Ubuntu 18.04 server版本安装:https://blog.csdn.net/qq_43058911/article/details/105834079安装ubuntu参考这个视频教程(这个视频和下一个视频):https://www.bilibili.com/video/BV1mt41127Rj?p=8上面的教学视频基于16版本的,还可以参考这个文章:https://blog.csdn.net/qq_43058911/article

2022-03-29 16:24:31 662

原创 (5)go web开发之 gin框架中的 模型绑定和验证(validator)

gin 框架中的参数验证及模型绑定介绍这篇文章应该在之前发的,当时没有总结,现在发现知识点还挺多,再来总结下。可以参考官方文档中的一些描述(参数验证及模型绑定):https://www.kancloud.cn/shuangdeyu/gin_book/949426还可以参考慕课网的一门免费课程有讲解到,包括请求参数的获取,绑定,验证:https://www.imooc.com/learn/1175我们知道 Gin使用 go-playground/validator.v8 验证参数。(现在应该是 v1

2022-01-10 16:25:08 841

原创 (4)go web开发之 JWT-Token认证机制Access Token与Refresh Token及 jwt-go 库介绍及在项目中使用

介绍jwt-go:官方介绍:A go (or ‘golang’ for search engine friendliness) implementation of JSON Web Tokens意思是 go 语言实现的 json web token。github地址:https://github.com/dgrijalva/jwt-go可以查看这篇讲解:https://www.bilibili.com/video/BV14p4y1x7kF?from=search&seid=269440

2021-12-12 14:16:53 3415

原创 力扣50号算法题Pow(x, n)。快速幂的递归与位运算实现及扩展题372. 超级次方

问题:力扣50. Pow(x, n)题目就是 力扣: 50. Pow(x, n): https://leetcode-cn.com/problems/powx-n/解法一: 直接暴力for循环:就是通过for 循环 O(n) 时间复杂度,不断的进行累加, 会出现超时。// 暴力破解,O(n) 迭代func myPow(x float64, n int) float64 { // 如果指数小于 0,那么将底数变为对应的 if n < 0 { x =

2021-12-07 21:04:17 379

原创 红黑树的应用与力扣456号算法题132模式详解,go语言解题

红黑树实现(力扣官方代码),以及详细的力扣 132模式这道题的解答和推算过程

2021-12-02 14:54:20 1030

原创 (3)go web开发之 基于雪花算法生成用户ID与自增id,uuid对比

摘自一篇文章开头:讲的很清晰,可以看看概念和对比https://blog.csdn.net/qq_40950903/article/details/108589837B站讲解 B树,B+树的视频,还有mysql索引https://www.bilibili.com/video/BV1qE411273M?spm_id_from=333.999https://www.bilibili.com/video/BV1e5411T77z?spm_id_from=333.999.0.0https://www.

2021-11-28 09:57:00 2920 4

原创 (2)go web开发之 使用viper读取配置文件

介绍什么是 viper?viper 是一个完整的配置解决方案,包括12-Factor apps。它被设计为在应用程序中工作,并且可以处理所有类型的配置需求和格式。它支持:设置默认值时时监控和重新读取配置文件从环境变量中读取从远程配置系统(etcd或Consul)读取并监听配置变化从命令行读取配置显示配置值可查看官方介绍:https://github.com/spf13/viper, 包括下载安装。上述介绍来自这里开篇为什么使用 viper?也有官方有介绍优势:能为

2021-11-24 16:48:31 1860

原创 (1)go web开发之 zap日志库的使用及gin框架配置zap记录日志详细文档讲解分析

(一)介绍zap 是go 中比较火的一个日志库,提供不同级别的日志,并且速度快官方文档: https://pkg.go.dev/go.uber.org/zap#section-readme, 也可以github 直接搜索 zap。 文档上面有全面的介绍。鼓励大家观看文档, 可以有视频资料做相关引导,但学东西必须要看到官方文档。尤其是文档也已经适合入门了,先看Quick Start 部分,一般都有入门例子及整体框架介绍。官方文档介绍,非常清晰,还有相关数据对比,并且一般都会具有 exampl

2021-11-23 20:49:40 2271

原创 详细讲解go web框架之gin框架源码解析记录及思路流程和理解

开篇首先gin 框架是在 官方提供的net/http标准包进行的相应封装。那么要想理解gin框架, 就要先懂一些 net/http标准包 的相关知识。可以参考中文的 文档: https://studygolang.com/pkgdoc可以参考的很多文章视频等:gin源码分析流程思维导图:https://www.processon.com/view/link/5f4b70c2079129356ec5cb70#mapgin源码解读哔哩哔哩视频讲 gin源码: https://w

2021-11-21 00:14:08 1812

原创 go语言简单实现 前缀树(Trie)与了解基数树(Radix-Tree)

目录结构Trie Trie.gomain.goTrie 的实现实现写法, 可以参照模仿 container/list 双向链表的写法实现下面代码中使用的是 slice 存储子节点, 线性查找遍历, 后面会进行 hash优化。package Trie// 字典树:/* 1. 单词结尾表示:需要使用一个 bool 类型,辨识当前节点是否是结尾字符 叶子结点是 单词结尾 非叶子节点 也可能是单词的结尾 2. 实现功能 增加单词 搜索单词*/// 定义树的节点

2021-11-19 09:31:07 1604

原创 《redis实战》一书笔记, 事务及分布式锁场景分析设计, 包括降低内存占用,短结构与分片

watch multi exec 使用 实际场景解决。《redis 实战》一书 的阅读与分析主要是搞懂 watch的开始时候,作用范围和使用。搞懂场景中代码的执行流程。 以及如何进行并发的处理(while 循环的作用。)注意看我里面的注释。Pipelining 的使用。注意开启事务,或者不开启事务watch 的性能缺陷观察上面的 注释,以及对代码的解析。 watch 监视 hash表类型。 key 有 name , age 字段, 当只想 更改name 字段, 但是 别的客户端

2021-10-27 23:29:39 110

原创 go语言基础学习13章节详细总结欢迎一起入门学习

golang学习笔记开篇: 初次学习,理解尚浅。暂且做些笔记,日后慢慢充实后,再加以更正或添加~第一章:启蒙与环境安装安装链接(非官网):https://studygolang.com/dl终端输入: go env, 查看镜像资源更改一个软件下载源:windows: go env -w GOPROXY=https://goproxy.cn,directlinux: export GOPROXY=https://goproxy.cn设置 GO111MODULE为打开:

2021-10-25 18:36:04 1037

原创 go语言:遍历 与 指针, == 号的理解。 值传递, copy函数。

问题描述:我的解答个人理解,初学。最后一个例子不好理解。 比如 var a []inta 是 nil 类型,但是已经可以去操作了, 比如 a = append(a, 1)我觉得同理,第三个例子也是这样。 将 nil 变为 *[3]int 数组类型的指针 的类型。 然后可以进行操作,得到0, 1, 2 的索引。报错: 运行时错误: 无效的内存地址或零指针取消引用。...

2021-10-12 13:19:05 123

原创 Python3,手写一个堆 及其 简易功能,并实现优先队列,最小堆任务调度等

大家可以查看我这篇文章中对堆和堆排序的描述:python实现10大排序算法详细介绍及排序思想介绍!这是官方文档下面是堆实现了四种方法:(1)heapify: 将数组调整为堆(2)heappop: 删除堆顶元素(3)heappush:向堆中添加元素(4)heapSort: 堆排序(5) 另外我实现的是大根堆,官网是小根堆,且下标都是从0开始。代码展示:class Heapq: """ 生成大根堆 """ def __HeapAdjust(

2021-08-04 10:48:04 653

原创 编程必备计算机基础知识总结:计算机组成原理,操作系统,计算机网络

前言:本文章主要是对 慕课网上的老师视频讲解的计算机基础只是进行记录。以及自己在学习编程后很久后,渐渐地想到,或者是渴望去了解这些计算机基础内容, 听到老师讲到的知识点后,有哪些触动,和感悟。为什么要学习计算机基础?我的个人理解,计算机基础得学习,有助于对编程整体的进行理解,并且很多东西都是触类旁通的。 刚开始学编程的时候并不是很重视这些,但是慢慢的,当一直编程到一定深度的时候,就会主动的想去了解这些内容。 比方说 我所学的Python语言,作为高度封装的语言,但护短开发方向,包括数据库,Red

2021-07-16 20:05:10 2319 5

原创 最详细的:数据库的MVCC (并发控制机制)及 ACID 与 事务隔离级别,数据库恢复,知识记录总结!

开篇这篇博客,大部分知识点来自于 B站搜索观看的视频,还有课本,做下总结记录。MySQL版本 5.6基础架构一:事务的特性:(1)原子性(2)一致性(3)隔离性(4)永久性三:什么是并发控制?(1)什么是并发控制?事务是并发控制的基本单位,为了保证事务的隔离性和一致性,数据库管理系统需要对并发操作进行正确调度。这就是数据库中的 并发控制机制。(2) 并发控制机制并发控制的技术主要有 封锁(locking),时间戳(timestamp), 乐观控制法,多版本并发控制(

2021-07-15 16:18:52 291

原创 详细讲解:Python中二进制以及数值的特殊性,在位运算中需要注意的点

我对python大整数的实现,点击查看在之前的文章,我实现过Python的大整数,可以说,在python中是没有数值类型这一说的, 你可以为一个变量赋值为上千亿,也不会出错。 没有了 如java中的int, short, byte等对位数的限制。已知int由四个字节表示,那么就有4X8 = 32位 可以表示的范围就是 -2^31 到 2^31 -1。但是在Python中# 参考大整数的实现,Python中的十进制是没有限制的。>>> a = 1000000000000000000

2021-07-07 15:58:55 871

原创 Python双链表详细讲解实现:模拟计算机缓存淘汰算法,FIFO,LRU以及LFU!

首先建立双向链表要注意的是,双链表增加头结点,会很方便操作还有双链表的插入删除操作上代码:功能弹出头部节点(pop)默认尾部添加结点(append),尾插法往头部添加结点(append_front),头插法删除节点(remove),不加参数时,删除尾部结点, 加蚕食时,删除指定结点打印 字符串格式化的 链表(print)#! -*- encoding=utf-8 -*-class Node: def __init__(self, key=0, value=0):

2021-06-28 12:51:24 355

原创 Python中 a, b = b, a 的具体字节码实现? 以及会出现的问题!

首先引入问题:力扣448题: 这是我的一种解法:class Solution: def findDisappearedNumbers(self, nums): rst = list() # 循环遍历每一个数组元素 for i in range(len(nums)): # 判断该元素位置上的值,是否需要交换, 注意 循环条件 while nums[i] != i + 1 and nums[i] !

2021-06-01 23:17:26 346 3

原创 关于linux操作系统中文件描述符以及Python 中open函数的理解

首先引入问题讨论:来自群聊记录文档里的open函数, 有个closefd的参数然后百度,分析,还要理解对话中的讲解里面的图片好了结束~

2021-04-24 18:11:33 112

原创 下载centos7安装Python3.8及centos7链接xshell,软连接的概念与vscode远程连接开发,亲测有效!!

步骤:一条龙下载centos系统–>配置网络,xshell连接–>安装Python3.8–>venv创建虚拟环境–>vscode远程连接开发,设置自动保存(1)下载centos系统(1)大家可以根据需要下载里面的centos系统(这里不给出具体的安装过程,网上可以参考很多,没啥大的差别)https://mirrors.tuna.tsinghua.edu.cn/centos/7/isos/x86_64/(2)配置网络,连接xshell(1)配置网络cento

2021-04-22 15:54:48 492 2

原创 并发编程基础:计算机组成原理及操作系统相关基础知识总结

计算机组成原理基本知识:一:CUPCore:核心,既CPU的内核,cpu中间的核心芯片,单晶硅制成。cpu可分为单核和多核cpu。 每一个核都是独立的运算单元,可以完成独立的计算,接收指令,处理数据等。单核cup: cpu只有一个用来处理数据的核心。多核cpu:cpu中有多个进行处理数据的核心。另外,cpu核数和性能的关系是呈 线性增长的。赫兹(HZ):代表cpu的频率。cpu是以高低电平的转换来工作的,听过一个频率的概念,来表示cpu的性能。例如 2GHZ表示,每秒进行高低电平切换20亿次。

2021-04-17 18:05:30 1644 4

原创 python网络编程细节讲解socket 到 小型udp聊天器及 tcpweb服务器, 小型下载器(进度更新及大文件传输)简单实现。

一)什么是Socket?可能介绍时稍加自己理解,有偏差的地方,还请见谅。(1)首先我们了解计算机网络中的信息传输过程(有七层,五层,四层计算机网络原理体系结构)我说下我学习的五层结构。(1)主机A发送数据: 应用层-->运输层-->网络层-->数据链路层-->物理层(2)中间经过路由器:物理层-->数据链路层-->网络层(3) 知道到达主机B:物理层-->数据链路层-->网络层-->运输层-->应用层(2)为何使用socket

2021-04-10 16:05:22 230 3

原创 ubuntu系统解决无法输入中文的问题及使用搜狗输入法配置细讲

背景: ubuntu(18.04)博主本身一直使用自带的 ibus键盘输入法,写中文也可以,但是今天打开虚拟机ubuntu发现,无法输入中文!!! 而且最头疼的是 输入源哪里一直显示 无输入源!!!,各种办法和 终端修改都试过不行,也无法添加语言(点击加号无法成功添加)网上也找不到我这种情况,并且连上面的小键盘选择输入法都没有了。无奈,我只能重新下载一个输入法代替了:(1)首先按照此方法下载 搜狗输入法https://zhuanlan.zhihu.com/p/58837239(2)根据上

2021-04-07 21:33:46 25499 1

原创 python实现10大排序算法详细介绍及排序思想介绍

什么是排序?排序是按关键字的非递减或者非递增顺序对一组记录重新进行排列的操作。(1)排序的稳定性通俗地讲,就是排序前 Ri 在 Rj前面,排序后Ri仍领先于Rj, 则说明是稳定的。(Ri<Rj)(2)内部排序与外部排序(3)内部排序方法的分类(4)待排序记录的存储方式一般为顺序存储结构或者是链式存储结构(5)排序算法效率的评价指标一.插入排序(1)直接插入排序"""直接插入排序:采用将r[i]与r[i-1], r[i-2],...,r[1],从后向前的进行

2021-04-06 21:27:38 542

原创 递归讲解与递归实现列表的反转

递归:特点:当一个复杂的问题可以分解为几个(最简单的就是一个)相对简单的且与原来问题解法相同或者类似的子问题来求解,便称为递归求解。:递归工作栈与递归过程:在高级语言中,调用函数与被调用函数之间的链接及信息交换需要通过栈来进行。字数太多,我们直接上图:递归算法的效率分析:时间复杂度: 大致为O(2^n) (斐波那契以及汉诺塔问题)空间复杂度: O(f(n)) ,f(n) 为递归工作栈中记录的个数与问题规模n的函数关系。分治法:一种分解-求解的策略,叫做分治法,用来求解递归

2021-04-01 18:13:59 3428

原创 Python字典hash表的模拟实现

本文学习自:《Python 源码深度剖析》感谢作者的传授若还不清楚字典的知识, 详细内容和知识点可点击了解功能主类(字典):PyDictObject(1) add_entry(self, key, value) : 添加元素(2)del_entry(self, key) : 删除元素(3) hash_list : (属性),可以遍历底层hash数组(4) entry_list: (属性),遍历底层键值对数组(5) 可通过简单的 for循环迭代,很方便pd = PyDictOb

2021-03-30 12:26:18 508 2

原创 模拟python底层数据类型,大整数的实现!

我们参考C源码的逻辑,试着用python去模拟一下大整数的实现,这里 只实现了加减法的操作。(感谢作者的专栏,收获很大,参考 慕课网:《Python 源码深度剖析》)(1)类: Int32()这是设计出来的,用来模仿 int类型 4字节的整形数据。定义了加减乘除4个基本运算利用数据描述器,对数据进行限制。最大的取值只有 -2 **31 到 2 **31 -1当运算结果大于 这个范围,便会抛出异常,提示你 整数溢出提供一个转换函数,当结果取值大时, 转换为 大整数类型进行计算(PyLongO

2021-03-10 16:52:18 803

原创 判断 矩阵对角线元素相等

看题目:已知矩阵:_matrix = [[1, 2, 3, 4], [5, 1, 2, 3], [9, 5, 1, 2]]如该矩阵,对角线上的元素相等,则输出 True,否则输出 False下面上代码def is_toeplitz_matrix(matrix): line_nums = len(matrix) per_line_nums = len(matrix[0]) col = 0 while col < per_line_nums -1: # 4

2021-03-05 18:03:57 2058

原创 静态链表和动态链表的创建使用 C语言与python实现

题目,以录入三个学生的成绩,学号为目的,创建链表(1)C语言(静态链表)// 静态链表/* 所以的节点都是在程序中定义的,不是临时开辟的, 也不能在用完后释放空间,这种称为静态链表*/# include <stdio.h>// 声明结构体struct Student{ long int num; float score; struct Student * next; // next 指针};int main(){ //

2021-02-01 10:59:10 449

原创 汉诺塔问题(Hanoi) C语言与Python实现

上 题目与分析:截取自C语言书籍中,详细的题目描述及解题分析C语言实现:尝试过自己解题,但是始终还是琢磨的不是很到位。总结一下主要是有两点(1) 去发现规律,想着去用递归,然后如何代码实现递归(2) 其中 叙述的 A B C,三个塔, 有两个过程, (1)A 借助 B 向 C ,(2) B 借助 A 向 C。 都可以抽象为 一个借助 另一个,向 另另一个三者的关系~ 这也将两种情况抽象的实现为一种,一个函数解决,我没想到这样下面是书中的解题代码// 汉诺塔问题#inclu

2021-01-20 13:32:14 288

原创 输出魔方阵,C语言与Python实现

上题目就是横竖斜的值相加相等规律:1.第一行中间一列的值为1。所以用j=n/2+1确定1的列数,得出a[1][j]=1。2.每一个数存放的行比前一个数的行数减1,列数加1。行数用i=i-1确定,列数用j=j+1确定。3.如果一个数行数为第一行,则下一个数行数为最后一行。4.如果一个列行数为最后一列,则下一个数列数为第一列。5.如果按上面的规则确定的位置上已有数,或上一个数是第一行最后一列,则把下一个数放在上一个数的下面。解法:利用二维数组表示实现将上述五

2021-01-19 20:12:47 1483 1

原创 超细节讲解杨辉三角!C语言与Python实现

33

2021-01-18 21:22:50 356 1

原创 计算一个句子中单词的个数C语言与Python实现

以空格分隔为一个单词,计算一个句子中的单词总数。C语言实现#include<stdio.h>#include<string.h>int main(){ char str[80]; int word = 0, num = 0; // 1.获取输入的字符串 printf("请输入一句话:\n"); gets(str); // 2. 循环遍历字符串每个字符 for(int i=0; str[i] != '\0'; i++) { // 3.其实 word=0

2021-01-18 17:10:39 2844

原创 输出菱形图案C语言与Python实现

上题目:要求, 输入菱形的宽 n,表示最宽地方的 * 个数,例如下图 n = 7C语言实现技巧:(1) 将菱形(如上图)分开为 上三角形,和倒三角形实现。(2) 分别找到 每行输出 空格 与 * 号的规律#include<stdio.h>int main(){ int n, m, c, i; printf("请输入*号的个数,代表菱形宽度:\n"); scanf("%d", &n); //打印上三角形 for(i=1; i<= (n + 1)

2021-01-17 20:53:46 1245 2

原创 水仙花数C语言与python版

水仙花数就是 100-1000 以内的三位数,例如:153 = 111 + 555 + 333 这样的数叫做水仙花数。C语言实现过程很简单,穷举,一个一个数字的循环试// 水仙花数#include <stdio.h>#include <math.h>int main(){ int b, s, g; for(int num = 100; num < 1000; num++) { b = num/100; s = num/10%10; g

2021-01-17 13:26:47 328 1

原创 翻译密码(简单的 大小写英文字母后移四位,其他字符不变)C语言与Python版本

题目及分析上图片~~~c语言实现(利用ASCLL码)// 译密码: 使用ASCLL码,转换#include <stdio.h>int main(){ // 1. 首先接收字符,我把它定义为 str,因为输出类似一个字符串 char str; printf("请输入要进行转换的一段话(英文字母加字符:)\n"); str = getchar(); while (str != '\n') { // 2. 判断是否为 a-z,A-Z ,不是就不动 if ((st

2021-01-16 17:18:46 4061 3

空空如也

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

TA关注的人

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