<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[pythonstrat的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/pythonstrat</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; pythonstrat]]></copyright><item><title><![CDATA[go语言for range与闭包传值的问题]]></title><link>https://blog.youkuaiyun.com/pythonstrat/article/details/128604075</link><guid>https://blog.youkuaiyun.com/pythonstrat/article/details/128604075</guid><author>pythonstrat</author><pubDate>Sun, 08 Jan 2023 18:47:42 +0800</pubDate><description><![CDATA[go语言闭包与for循环参数问题]]></description><category></category></item><item><title><![CDATA[时区的区别及go语言的time库]]></title><link>https://blog.youkuaiyun.com/pythonstrat/article/details/125596591</link><guid>https://blog.youkuaiyun.com/pythonstrat/article/details/125596591</guid><author>pythonstrat</author><pubDate>Mon, 04 Jul 2022 11:52:51 +0800</pubDate><description><![CDATA[go time库时间转化与使用]]></description><category></category></item><item><title><![CDATA[gorm datatypes.JSON用法与json.RawMessage读取前端传去的json数据存数据库]]></title><link>https://blog.youkuaiyun.com/pythonstrat/article/details/125389468</link><guid>https://blog.youkuaiyun.com/pythonstrat/article/details/125389468</guid><author>pythonstrat</author><pubDate>Tue, 21 Jun 2022 14:02:38 +0800</pubDate><description><![CDATA[go 语言将 前端传递的json类型的数据存入数据库当中， 利用json.RawMessagr 和 datatypes.JSON ]]></description><category></category></item><item><title><![CDATA[学习随笔：ubuntu18.04-server版本安装及配置go环境及vscode，goland远程连接及gitlab秘钥配置及postman下载]]></title><link>https://blog.youkuaiyun.com/pythonstrat/article/details/123816929</link><guid>https://blog.youkuaiyun.com/pythonstrat/article/details/123816929</guid><author>pythonstrat</author><pubDate>Tue, 29 Mar 2022 16:24:31 +0800</pubDate><description><![CDATA[1. 安装 ubuntu18.04-server版本

Ubuntu 18.04 server版本安装：https://blog.youkuaiyun.com/qq_43058911/article/details/105834079

安装ubuntu参考这个视频教程（这个视频和下一个视频）：https://www.bilibili.com/video/BV1mt41127Rj?p=8
上面的教学视频基于16版本的，还可以参考这个文章：https://blog.youkuaiyun.com/qq_43058911/article]]></description><category></category></item><item><title><![CDATA[（5）go web开发之 gin框架中的 模型绑定和验证（validator）]]></title><link>https://blog.youkuaiyun.com/pythonstrat/article/details/122410100</link><guid>https://blog.youkuaiyun.com/pythonstrat/article/details/122410100</guid><author>pythonstrat</author><pubDate>Mon, 10 Jan 2022 16:25:08 +0800</pubDate><description><![CDATA[gin 框架中的参数验证及模型绑定介绍

这篇文章应该在之前发的，当时没有总结，现在发现知识点还挺多，再来总结下。
可以参考官方文档中的一些描述（参数验证及模型绑定）：https://www.kancloud.cn/shuangdeyu/gin_book/949426
还可以参考慕课网的一门免费课程有讲解到，包括请求参数的获取，绑定，验证：https://www.imooc.com/learn/1175
我们知道 Gin使用 go-playground/validator.v8 验证参数。（现在应该是 v1]]></description><category></category></item><item><title><![CDATA[（4）go web开发之 JWT-Token认证机制Access Token与Refresh Token及 jwt-go 库介绍及在项目中使用]]></title><link>https://blog.youkuaiyun.com/pythonstrat/article/details/121875782</link><guid>https://blog.youkuaiyun.com/pythonstrat/article/details/121875782</guid><author>pythonstrat</author><pubDate>Sun, 12 Dec 2021 14:16:53 +0800</pubDate><description><![CDATA[介绍

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&amp;seid=269440]]></description><category></category></item><item><title><![CDATA[力扣50号算法题Pow(x, n)。快速幂的递归与位运算实现及扩展题372. 超级次方]]></title><link>https://blog.youkuaiyun.com/pythonstrat/article/details/121762761</link><guid>https://blog.youkuaiyun.com/pythonstrat/article/details/121762761</guid><author>pythonstrat</author><pubDate>Tue, 07 Dec 2021 21:04:17 +0800</pubDate><description><![CDATA[问题：力扣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 &lt; 0 {
        x =]]></description><category></category></item><item><title><![CDATA[红黑树的应用与力扣456号算法题132模式详解，go语言解题]]></title><link>https://blog.youkuaiyun.com/pythonstrat/article/details/121676741</link><guid>https://blog.youkuaiyun.com/pythonstrat/article/details/121676741</guid><author>pythonstrat</author><pubDate>Thu, 02 Dec 2021 14:54:20 +0800</pubDate><description><![CDATA[红黑树实现（力扣官方代码），以及详细的力扣 132模式这道题的解答和推算过程]]></description><category></category></item><item><title><![CDATA[（3）go web开发之 基于雪花算法生成用户ID与自增id，uuid对比]]></title><link>https://blog.youkuaiyun.com/pythonstrat/article/details/121568650</link><guid>https://blog.youkuaiyun.com/pythonstrat/article/details/121568650</guid><author>pythonstrat</author><pubDate>Sun, 28 Nov 2021 09:57:00 +0800</pubDate><description><![CDATA[摘自一篇文章开头：
讲的很清晰，可以看看概念和对比https://blog.youkuaiyun.com/qq_40950903/article/details/108589837

B站讲解 B树，B+树的视频，还有mysql索引

https://www.bilibili.com/video/BV1qE411273M?spm_id_from=333.999
https://www.bilibili.com/video/BV1e5411T77z?spm_id_from=333.999.0.0
https://www.]]></description><category></category></item><item><title><![CDATA[（2）go web开发之 使用viper读取配置文件]]></title><link>https://blog.youkuaiyun.com/pythonstrat/article/details/121513996</link><guid>https://blog.youkuaiyun.com/pythonstrat/article/details/121513996</guid><author>pythonstrat</author><pubDate>Wed, 24 Nov 2021 16:48:31 +0800</pubDate><description><![CDATA[介绍

什么是 viper？

viper 是一个完整的配置解决方案，包括12-Factor apps。它被设计为在应用程序中工作，并且可以处理所有类型的配置需求和格式。它支持:

设置默认值
时时监控和重新读取配置文件
从环境变量中读取
从远程配置系统（etcd或Consul）读取并监听配置变化
从命令行读取配置
显示配置值


可查看官方介绍：https://github.com/spf13/viper， 包括下载安装。上述介绍来自这里开篇



为什么使用 viper？

也有官方有介绍优势：

能为]]></description><category></category></item><item><title><![CDATA[（1）go web开发之 zap日志库的使用及gin框架配置zap记录日志详细文档讲解分析]]></title><link>https://blog.youkuaiyun.com/pythonstrat/article/details/121476607</link><guid>https://blog.youkuaiyun.com/pythonstrat/article/details/121476607</guid><author>pythonstrat</author><pubDate>Tue, 23 Nov 2021 20:49:40 +0800</pubDate><description><![CDATA[（一）介绍


zap 是go 中比较火的一个日志库，提供不同级别的日志，并且速度快


官方文档： https://pkg.go.dev/go.uber.org/zap#section-readme， 也可以github 直接搜索 zap。 文档上面有全面的介绍。鼓励大家观看文档， 可以有视频资料做相关引导，但学东西必须要看到官方文档。尤其是文档也已经适合入门了，先看Quick Start 部分，一般都有入门例子及整体框架介绍。


官方文档介绍，非常清晰，还有相关数据对比，并且一般都会具有 exampl]]></description><category></category></item><item><title><![CDATA[详细讲解go web框架之gin框架源码解析记录及思路流程和理解]]></title><link>https://blog.youkuaiyun.com/pythonstrat/article/details/121423122</link><guid>https://blog.youkuaiyun.com/pythonstrat/article/details/121423122</guid><author>pythonstrat</author><pubDate>Sun, 21 Nov 2021 00:14:08 +0800</pubDate><description><![CDATA[开篇


首先gin 框架是在 官方提供的net/http标准包进行的相应封装。


那么要想理解gin框架， 就要先懂一些  net/http标准包 的相关知识。


可以参考中文的 文档： https://studygolang.com/pkgdoc


可以参考的很多文章视频等：

gin源码分析流程思维导图：https://www.processon.com/view/link/5f4b70c2079129356ec5cb70#map
gin源码解读
哔哩哔哩视频讲 gin源码： https://w]]></description><category></category></item><item><title><![CDATA[go语言简单实现 前缀树（Trie）与了解基数树（Radix-Tree）]]></title><link>https://blog.youkuaiyun.com/pythonstrat/article/details/121408741</link><guid>https://blog.youkuaiyun.com/pythonstrat/article/details/121408741</guid><author>pythonstrat</author><pubDate>Fri, 19 Nov 2021 09:31:07 +0800</pubDate><description><![CDATA[目录结构
Trie 
	Trie.go
main.go

Trie 的实现

实现写法， 可以参照模仿 container/list 双向链表的写法实现
下面代码中使用的是 slice 存储子节点， 线性查找遍历， 后面会进行 hash优化。

package Trie

// 字典树：
/*
	1. 单词结尾表示：需要使用一个 bool 类型，辨识当前节点是否是结尾字符
		叶子结点是 单词结尾
		非叶子节点 也可能是单词的结尾
	2. 实现功能
		增加单词
		搜索单词
*/


// 定义树的节点]]></description><category></category></item><item><title><![CDATA[《redis实战》一书笔记， 事务及分布式锁场景分析设计， 包括降低内存占用，短结构与分片]]></title><link>https://blog.youkuaiyun.com/pythonstrat/article/details/121004609</link><guid>https://blog.youkuaiyun.com/pythonstrat/article/details/121004609</guid><author>pythonstrat</author><pubDate>Wed, 27 Oct 2021 23:29:39 +0800</pubDate><description><![CDATA[watch multi exec 使用 实际场景解决。

《redis 实战》一书 的阅读与分析
主要是搞懂 watch的开始时候，作用范围和使用。
搞懂场景中代码的执行流程。 以及如何进行并发的处理（while 循环的作用。）注意看我里面的注释。


Pipelining 的使用。

注意开启事务，或者不开启事务


watch 的性能缺陷

观察上面的 注释，以及对代码的解析。 watch 监视 hash表类型。 key 有  name ， age 字段， 当只想 更改name 字段， 但是 别的客户端]]></description><category></category></item><item><title><![CDATA[go语言基础学习13章节详细总结欢迎一起入门学习]]></title><link>https://blog.youkuaiyun.com/pythonstrat/article/details/120957577</link><guid>https://blog.youkuaiyun.com/pythonstrat/article/details/120957577</guid><author>pythonstrat</author><pubDate>Mon, 25 Oct 2021 18:36:04 +0800</pubDate><description><![CDATA[golang学习笔记

开篇： 初次学习，理解尚浅。暂且做些笔记，日后慢慢充实后，再加以更正或添加~

第一章：启蒙与环境安装


安装链接（非官网）：https://studygolang.com/dl


终端输入： go env, 查看镜像资源


更改一个软件下载源：

windows: go env -w GOPROXY=https://goproxy.cn,direct
linux: export GOPROXY=https://goproxy.cn



设置 GO111MODULE为打开： ]]></description><category></category></item><item><title><![CDATA[go语言:遍历 与 指针， == 号的理解。 值传递， copy函数。]]></title><link>https://blog.youkuaiyun.com/pythonstrat/article/details/120721534</link><guid>https://blog.youkuaiyun.com/pythonstrat/article/details/120721534</guid><author>pythonstrat</author><pubDate>Tue, 12 Oct 2021 13:19:05 +0800</pubDate><description><![CDATA[问题描述：



我的解答



个人理解，初学。


最后一个例子不好理解。  比如 var a []int


a 是 nil 类型，但是已经可以去操作了，  比如  a = append(a, 1)
我觉得同理，第三个例子也是这样。 将 nil 变为   *[3]int  数组类型的指针 的类型。 然后可以进行操作，得到0， 1， 2 的索引。


报错： 运行时错误： 无效的内存地址或零指针取消引用。


...]]></description><category></category></item><item><title><![CDATA[Python3，手写一个堆 及其 简易功能，并实现优先队列，最小堆任务调度等]]></title><link>https://blog.youkuaiyun.com/pythonstrat/article/details/119378788</link><guid>https://blog.youkuaiyun.com/pythonstrat/article/details/119378788</guid><author>pythonstrat</author><pubDate>Wed, 04 Aug 2021 10:48:04 +0800</pubDate><description><![CDATA[大家可以查看我这篇文章中对堆和堆排序的描述：

python实现10大排序算法详细介绍及排序思想介绍！
这是官方文档

下面是堆

实现了四种方法：
（1）heapify： 将数组调整为堆
（2）heappop: 删除堆顶元素
（3）heappush：向堆中添加元素
（4）heapSort: 堆排序
（5） 另外我实现的是大根堆，官网是小根堆，且下标都是从0开始。

代码展示：
class Heapq:
    """
        生成大根堆
    """

    def __HeapAdjust(]]></description><category></category></item><item><title><![CDATA[编程必备计算机基础知识总结：计算机组成原理，操作系统，计算机网络]]></title><link>https://blog.youkuaiyun.com/pythonstrat/article/details/118160254</link><guid>https://blog.youkuaiyun.com/pythonstrat/article/details/118160254</guid><author>pythonstrat</author><pubDate>Fri, 16 Jul 2021 20:05:10 +0800</pubDate><description><![CDATA[前言：

本文章主要是对 慕课网上的老师视频讲解的计算机基础只是进行记录。以及自己在学习编程后很久后，渐渐地想到，或者是渴望去了解这些计算机基础内容， 听到老师讲到的知识点后，有哪些触动，和感悟。

为什么要学习计算机基础？

我的个人理解，计算机基础得学习，有助于对编程整体的进行理解，并且很多东西都是触类旁通的。 刚开始学编程的时候并不是很重视这些，但是慢慢的，当一直编程到一定深度的时候，就会主动的想去了解这些内容。 比方说 我所学的Python语言，作为高度封装的语言，但护短开发方向，包括数据库，Red]]></description><category></category></item><item><title><![CDATA[最详细的：数据库的MVCC （并发控制机制）及 ACID 与 事务隔离级别，数据库恢复，知识记录总结！]]></title><link>https://blog.youkuaiyun.com/pythonstrat/article/details/117415813</link><guid>https://blog.youkuaiyun.com/pythonstrat/article/details/117415813</guid><author>pythonstrat</author><pubDate>Thu, 15 Jul 2021 16:18:52 +0800</pubDate><description><![CDATA[开篇

这篇博客，大部分知识点来自于 B站搜索观看的视频，还有课本，做下总结记录。

MySQL版本 5.6

基础架构

一：事务的特性：
（1）原子性
（2）一致性
（3）隔离性
（4）永久性
三：什么是并发控制？
（1）什么是并发控制？

事务是并发控制的基本单位，为了保证事务的隔离性和一致性，数据库管理系统需要对并发操作进行正确调度。这就是数据库中的 并发控制机制。

（2） 并发控制机制


并发控制的技术主要有 封锁（locking），时间戳（timestamp）， 乐观控制法，多版本并发控制（]]></description><category></category></item><item><title><![CDATA[详细讲解：Python中二进制以及数值的特殊性，在位运算中需要注意的点]]></title><link>https://blog.youkuaiyun.com/pythonstrat/article/details/118542998</link><guid>https://blog.youkuaiyun.com/pythonstrat/article/details/118542998</guid><author>pythonstrat</author><pubDate>Wed, 07 Jul 2021 15:58:55 +0800</pubDate><description><![CDATA[我对python大整数的实现，点击查看

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

# 参考大整数的实现，Python中的十进制是没有限制的。
&gt;&gt;&gt; a = 1000000000000000000]]></description><category></category></item></channel></rss>