千恋*万花

  • 首页
  • 个人简历
  • 文章分类
    • 后端开发
    • 运维
    • 基础知识
    • 笔记
    • 工作运维记录
    • 随笔
    • 未分类文章
golang
golang

通过实践 总结 golang defer 的用法

前言 用golang也用了挺长时间了,我对 defer 这个设计还比较满意,而且对其使用也产生了一些依赖,在使用其他编程语言写的入迷的时候,经常写出来 unknow type defer 的操作。 项目中,我用defer,一般是在 io 的时候使用,开启文件后,紧跟一个关闭,现在已经成为我的一种习惯了。 最近面试的时候,被问到了defer一些不常用的用法,虽然我都答出来了,但是答的过程有点曲折。我能把defer的大白话说出来,但是还是缺少总结语言的能力。 所以今天我想把 defer 用法的大白话,用代码让自己记住。…

2023-02-03 0条评论 3722点热度 1人点赞 初音萌奈 阅读全文
golang

基于 go-redis 与 Lua 实现简易且高效的分布式锁

分布式锁的应用场景 在分布式业务中,若涉及到共享的资源,未防止多个进程同时访问、处理该资源,那么则需要一个分布式锁 来保证该共享资源在同一时刻只能被一个对象进行处理。 设计理论 为了实现锁互斥能力,则一定涉及到 Redis 的SETNX指令(SET if Not eXist) 锁只能由创建锁的对象解开,所以需要记录锁是由哪个对象创建的,解锁时需要验证锁的所有权 为了防止死锁,第一 需要允许强制解除锁,第二 每个锁必须要有 超时时间 综上,便可以编写出一个锁的定义了 type lock struct { contex…

2023-01-03 0条评论 4162点热度 2人点赞 初音萌奈 阅读全文
golang

记 leetcode Q1805 解题思路

题目连接 Q1805 题目详情: 给你一个字符串 word ,该字符串由数字和小写英文字母组成。 请你用空格替换每个不是数字的字符。例如,"a123bc34d8ef34" 将会变成 " 123  34 8  34" 。注意,剩下的这些整数为(相邻彼此至少有一个空格隔开):"123"、"34"、"8" 和 "34" 。 返回对 word 完成替换后形成的 不同 整数的数目。 只有当两个整数的 不含前…

2022-12-06 0条评论 3843点热度 0人点赞 初音萌奈 阅读全文
基础知识

五行解决反转链表问题 以及其引伸

题目如下 反转链表 反转一个单链表。 示例:   输入: 1->2->3->4->5->NULL   输出: 5->4->3->2->1->NULL 进阶:   你可以迭代或递归地反转链表。你能否用两种方法解决这道题? 力扣206题,传送门 解法: func reverseList(head *ListNode) *ListNode { cur := head //当前节点 var prev *ListNode //前一个节点(”第一个“前一个节点为nil) for cur != nil { cur.Next, p…

2021-02-09 0条评论 6010点热度 0人点赞 初音萌奈 阅读全文
golang

深入探讨 Go 多变量赋值

使用go语言时,会经常把一些变量放在同一行来声明、赋值或计算。那么,这种赋值方法到底是以什么样的实现方法来赋值的呢? 先说结论,就两步: 一、先计算等号右侧所有表达式的值,将结果存储临时变量中。 二、将临时变量的值赋给等式左侧的变量。 多个变量一同声明并赋值 a, b := 1, 5 //情况一 c, d := a+b, a-b //情况二 对于情况一来说,很简单,直接按照从左到右的顺序,把1、2两个值赋值给a、b ; -----情况一 相关汇编代码 开始---------- (.\main.go:4) MOVQ …

2021-02-08 1条评论 6293点热度 1人点赞 初音萌奈 阅读全文
golang

Go命令行程序(CLIs)框架——Cobra

什么是 CLIs 命令行界面(英语:Command-Line Interface,缩写:CLI)是在图形用户界面得到普及之前使用最为广泛的用户界面,它通常不支持鼠标,用户通过键盘输入指令,计算机接收到指令后,予以执行。也有人称之为字符用户界面(character user interface, CUI)。 虽然现在很多操作系统都提供了图形化的操作方式,但是却都保留了命令行界面,甚至有很多系统更加强了这部分功能。例如服务器端常用的Linux系统,目前就连以可视化桌面为主的Windows,也在强化自己命令行操作指令的功…

2021-01-27 0条评论 7835点热度 1人点赞 初音萌奈 阅读全文
gin

Gin网络请求与路由处理——Go Gin框架(二)

创建Engine(引擎) Engine代表Gin框架的一个结构体定义。 其中包括了路由组、中间件、页面渲染接口、框架配置设置等相关内容 Engine 有以下两种创建方式: engine1 = gin.Default() //通常使用,会默认使用Logger和Recovery中间件 engine2 = gin.New() Recovery中间件的作用是:如果程序执行过程中遇到了panic中断了服务,Recovery会恢复程序的执行,并返回服务器500内部错误。 Logger负责打印并输出日志的中间件,方便我们开发调试…

2020-10-02 0条评论 6686点热度 3人点赞 初音萌奈 阅读全文

初音萌奈

我是练习时长 三年半 的后端开发程序员
谢谢你参观我的博客!
本网站现已支持IPv6
☞ 个人简历 ☜

分类
  • 后端开发 / 24篇
    • Elasticsearch (ES篇 / 2篇
    • gin / 6篇
    • golang / 12篇
    • lua / 1篇
    • MySQL / 8篇
    • PHP / 1篇
    • PostgreSQL (pgSQL篇 / 1篇
    • Redis / 1篇
  • 基础知识 / 6篇
    • 算法与数据结构 / 5篇
    • 计算机原理 / 1篇
  • 工作成长 / 1篇
  • 工作运维记录 / 7篇
  • 笔记 / 9篇
  • 运维 / 10篇
    • bash / 3篇
    • Docker / 1篇
    • Kubernetes (k8s篇 / 1篇
    • Linux / 4篇
    • NAS / 1篇
    • Server / 2篇
    • 开发环境 / 1篇
    • 网络 / 4篇
  • 随笔 / 8篇
    • 微博(字面意思) / 4篇
    • 日志 / 2篇
站点统计
  • 14
  • 4,301
  • 312,001
  • 139,733
  • 0
  • 55
  • 7

COPYRIGHT © 2025 HatsuneMona ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

晋ICP备17007130号-4