- 博客(510)
- 资源 (2)
- 收藏
- 关注
原创 golang中new和make的区别
Go语言中new和make都是内存分配函数,但用途不同。new(T)为任意类型T分配零值内存并返回指针*T,适用于所有类型。make(T,args...)仅用于切片、映射和通道,返回初始化后的类型实例而非指针,会执行额外初始化操作。关键区别在于:new返回指针且适用于所有类型,make返回初始化值且仅限特定类型。选择使用时,处理slice/map/channel用make,其他类型需要指针时用new。
2025-06-16 10:50:19
185
原创 vuex全解析
Vuex核心概念与应用指南Vuex是Vue.js生态中实现大范围数据共享的状态管理方案,通过集中式存储管理应用状态,使组件间数据共享更加高效。主要特点包括:数据存取一步到位,无需层层传递数据流动清晰可追踪所有存储数据均为响应式核心功能模块:state:存储全局共享数据mutations:包含同步方法修改stateactions:处理异步操作后通过mutations修改stategetters:相当于Vuex的计算属性开发建议:仅共享数据放入Vuex严格模式下禁止直接修改st
2025-06-13 02:31:43
935
原创 vue的created和mounted区别
Vue.js的created和mounted生命周期钩子关键区别:created在实例创建后同步调用,可访问数据但DOM未渲染;mounted在DOM挂载后触发,可操作DOM元素。created适合数据初始化与API请求,mounted用于DOM操作和第三方库初始化。注意created不可访问DOM,DOM相关操作需在mounted中进行。执行顺序为beforeCreate→created→beforeMount→mounted。服务端渲染中created可用,mounted仅客户端执行。
2025-06-10 20:09:28
543
原创 原生js操作元素类名(classList,classList.add...)
摘要:文章详细介绍了JavaScript中classList属性的使用方法,包括查询、添加、移除、切换和替换CSS类名的操作。classList作为DOM元素的一个只读属性,提供length、contains()、item()等方法查询类名信息;通过add()和remove()添加/移除类名;使用toggle()切换类名状态;replace()方法实现类名替换。每种方法都配有代码示例演示实际应用场景,帮助开发者动态控制元素样式。文中示例涵盖单类名和多类名操作,并说明相关返回值和处理特殊情况(如操作不存在的类
2025-06-05 01:33:53
777
原创 vue中输入框事件的使用——@input、@keyup.enter、@change、@blur
注:在ios手机上会出现问题: 如果要的效果是输入值不用虚拟键盘触发方法就调查询接口进行查询,这时在安卓手机上没有问题,但是在ios手机上会出现多次触发的情况。该事件与v-on:input事件的区别在于:input事件是实时监控的,每次输入都会调用,而@keyup.enter事件则是在pc上需要点击回车键触发,而在手机上则是需要点击输入键盘上的确定键才可触发。该事件和enter事件相似,在手机上都是要经过触发虚拟键盘的搜索键才会触发事件。适用于实时查询,每输入一个字符都会触发该事件。
2025-06-04 16:44:42
495
原创 JavaScript数组方法 find() ,使用详细
JavaScript中的find()方法用于查找数组中符合条件的第一个元素,返回该元素或undefined。基本语法为array.find(callback),其中callback接收元素、索引和数组三个参数。该方法不会修改原数组。示例:查找数组中的负数或特定ID的对象。注意它会返回第一个匹配项,遍历到匹配即停止。该方法为ES6特性,旧浏览器可能不支持。
2025-06-04 02:51:55
600
原创 Vue使用toFixed保留两位小数的三种写法
摘要:介绍三种在js中对数值保留两位小数的方法:1.直接使用toFixed(2)方法;2.在ElementUi表格中通过空格格式处理;3.定义方法并在取值符号中使用。第三种方法通过定义towNumber函数,在模板中调用{{towNumber(row.equiValue)}}实现格式化输出。
2025-06-02 01:48:25
374
原创 Go语言通道如何实现通信
Go语言中的通道(channel)是用于goroutine间通信的内置数据结构,提供安全的数据传递方式。使用步骤包括:1)用make创建指定类型的通道;2)通过<-发送数据;3)用<-接收数据;4)不需要时用close关闭通道。示例展示了如何在两个goroutine间发送和接收数据:一个发送0-4的整数并关闭通道,另一个接收并打印数据。通道避免了数据竞争和死锁,是实现并发通信的有效机制。
2025-05-30 16:53:49
584
原创 go的select多路复用
摘要:本文演示了Go语言中select多路复用的使用场景。示例创建了两个缓冲通道(intChan和stringChan),分别写入整数和字符串数据。通过select语句,程序能同时监听多个通道的数据接收,当任一通道有数据时就立即处理。在没有数据可读时,default分支会执行退出操作。这种机制避免了关闭通道的需求,展示了Go语言并发编程中高效处理多通道通信的方法。
2025-05-30 16:43:10
278
原创 go的协程和channel结合
这是用Go语言实现的素数筛选程序。程序使用并发处理来提高效率,主要步骤包括:1) 将2-120000的数字放入通道;2) 启动16个协程并行判断素数;3) 通过WaitGroup同步协程;4) 最终统计执行时间。程序采用通道(intChan,primeChan,exitChan)进行协程间通信,并精确控制通道的关闭时机,确保所有素数被正确筛选和收集。执行完成后会输出总耗时,展示了Go在并发编程中的高效应用。
2025-05-30 16:00:16
115
原创 go的strconv函数库用法
本文介绍了在Go语言中将不同类型数据转换为字符串的两种方法:1)使用fmt.Sprintf函数,通过格式化参数转换整数(%d)、浮点数(%f)、布尔值(%t)和字节(%c);2)使用strconv包中的Format系列函数,包括FormatInt(整数转十进制字符串)、FormatFloat(浮点数格式化,可控制精度)和FormatBool(布尔值转字符串)。文章通过代码示例展示了各种转换方式的语法和使用注意事项,特别强调了FormatFloat的参数设置和格式化选项。
2025-05-30 00:51:05
128
原创 go实现定时任务
本文介绍了在Go中实现定时任务的五种方法:1)使用time.Timer和time.Ticker实现单次和周期性任务;2)用time.AfterFunc实现可取消的延迟任务;3)推荐使用robfig/cron库处理复杂调度;4)结合Goroutine和Channel实现灵活控制;5)在Web应用中集成后台任务。根据不同场景需求,文中对比了各方法的适用性,提供了详细代码示例,特别推荐使用robfig/cron库处理cron表达式的复杂调度任务。
2025-05-28 23:26:13
554
原创 go实例化结构体的方式
本文总结了Go语言中结构体的七种实例化方法:1)使用var关键字创建零值结构体;2):=赋值初始化;3)带字段名的初始化(推荐方式);4)按字段顺序初始化(不推荐);5)new关键字返回指针;6)&取地址直接返回指针;7)构造函数封装初始化逻辑。此外还介绍了使用sync.Pool优化高频创建销毁场景的方法。推荐使用字段名初始化、构造函数和&取地址这三种方式,兼顾可读性与效率。文中包含完整的代码示例和对比表格,清晰展示了每种方法的适用场景和优缺点。
2025-05-28 17:36:32
590
原创 gin中把日志生成到按年月的日志文件中
本文展示了如何使用Go语言中的Gin框架配置日志输出。代码演示了如何将Gin的日志记录到按月命名的文件中,首先创建"logs"目录并生成格式为"YYYYMM.log"的日志文件。通过设置gin.DefaultWriter,可将日志输出重定向到指定文件。文中还提到可选项:同时输出到控制台。最后创建了默认的Gin路由引擎并启动服务。这段代码适合需要长期保存Web服务日志的场景。
2025-05-27 15:53:03
389
原创 gin使用Mysql连接池用法
本文介绍了如何在Gin框架中高效使用MySQL连接池的实用方法。通过连接池技术重用数据库连接,可以显著提升性能并降低资源消耗。文章详细演示了从安装Gin和MySQL驱动、配置连接池参数到实现简单API的完整流程,并提供了具体代码示例。连接池的优势包括性能提升、更好的资源管理和更高的应用可扩展性,适用于需要频繁数据库访问的Web应用开发。
2025-05-26 16:50:38
854
原创 go中len和sizeof区别
在Go语言中,len和sizeof(通过unsafe.Sizeof实现)功能不同。len用于获取数组、切片、字符串、映射和通道等数据类型的长度
2025-05-22 14:48:17
402
原创 Go fmt.Sprintf 格式化字符串
https://www.runoob.com/go/go-fmt-sprintf.html
2025-05-17 23:05:14
94
原创 Visual Studio Code 格式化代码的快捷键
VSCode提供了默认的代码格式化快捷键:Windows和Linux用户使用Shift+Alt+F,macOS用户使用Shift+Option+F。如果用户不习惯这些默认快捷键,可以通过以下步骤自定义:首先进入Preferences -> Keyboard Shortcuts,然后选择Format Document或Format Selection,或者点击键盘图标并按下Shift+Option+F。最后,用户可以直接点击Keybinding并输入自己偏好的快捷键来替换默认设置。这一过程简单直观,允许用户根
2025-05-17 22:53:54
620
原创 vscode中go项目:函数不能跳转问题
在Windows系统上,原本安装了Go 1.21.5版本并设置了GOROOT路径。但在克隆Vitess项目后,由于项目依赖Go 1.23.3版本,执行go mod tidy后,GOROOT路径被动态更改为一个由版本管理工具生成的路径,并在D:\Go\pkg\mod\golang.org下生成了不同版本的Go代码包。虽然程序能正常运行,但无法跳转到函数定义,原因是缺少多版本下的工具。解决方法是安装gopls工具,并在VSCode中重启语言服务器。具体步骤包括:在终端运行go install golang.or
2025-05-17 22:39:10
589
原创 go速度太慢卡顿,换国内源
在中国境内使用Go编程语言时,可以通过配置国内Go模块代理来加速包的下载。常见的代理源包括七牛云(https://goproxy.cn)、阿里云(https://mirrors.aliyun.com/goproxy/)和清华大学(https://goproxy.tuna.tsinghua.edu.cn)。切换代理源的方法有两种:一是通过终端命令go env -w GOPROXY=<代理地址>,direct进行配置,例如go env -w GOPROXY=https://goproxy.cn,direct;二
2025-05-17 16:35:23
754
原创 Mac PHP7.4安装
这是因为php7.4官方已经不再维护,所以Hombrew将该php版本移出了repository,所以安装不了。比如(所有旧版php仓库地址https://github.com/shivammath…查看可按照版本:brew search php。//将第三方仓库加入brew。
2023-11-16 10:09:18
563
原创 array_map与array_walk的用法与区别详解
今天看代码的时候,发现代码中使用array_map来统一去掉数组中的空格,比起循环来,方便了很多。2、array_map里面的函数可以是自定义函数,也可以是php自带的函数,比如trim去除空格等。1、array_map的用法是array_map(函数名,数组),而array_walk的用法是array_walk(数组,函数名);array_map() 函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新值的数组。3、array_map不可以改变原函数的值,会获取到新的数组。
2023-10-26 17:11:15
228
原创 thinkphp 解决跨域的三个方式
2. 在route.php加上 allowCrossDomain(),这个也是thinkphp推荐的做法。值得注意的是,三种办法中,任选一种。本人推荐的是在nginx中配置。1. 在tp入口index.php 加上header。3. 在nginx上允许跨域的头部。
2023-10-23 11:48:49
2938
转载 thinkphp开启定时任务的三种办法(最全)
this->setName('SendMessage')->setDescription("计划任务 SendMessage");//设置任务的周期,每天执行一次,更多的方法可以查看源代码,都有注释。\app\task\DemoTask::class, //任务的完整类名。*/1 * * * * php 项目路径/think 设置的命令关键字。/*** 这里写计划任务列表集 START ***//*** 这里写计划任务列表集 END ***///echo '这里写你要实现的逻辑代码';
2023-09-08 16:10:08
5218
原创 thinkphp6如何将需要记录的日志单独记录到一个日志中
如何将需要记录的日志单独记录到一个日志中有时候需要将具体情况的日志统一记录到单一的类目中方便查看。比如支付日志,回调日志。可以使用通道解决方法。1.日志通道channel将配置不同的日志通道,将不同的日志记录到不同的日志中使用方法:Log::channel('pay')->info('支付日志');配置日志文件config/log.php,加入不同的配置:return [ // 默认日志记录通道 'default' => env('log.channel', 'file'),
2023-08-28 11:29:54
1187
原创 group_concat用法详解
10 |数学 |小马 |王老师 |90 ||11 |数学 |小朱 |王老师 |90 ||3 |数学 |小王 |王老师 |70 ||4 |数学 |小张 |王老师 |90 ||7 |数学 |小钱 |王老师 |90 ||8 |数学 |小高 |王老师 |70 |
2023-07-08 09:19:59
443
原创 MYSQL中 find_in_set() 函数用法详解
strlist 需查询的字段,参数以”,”分隔,形式如 (1,2,6,8,10,22);,字符串中没有分隔符,Find_IN_SET 是精确匹配,字段值以英文”,”分隔,Find_IN_SET查询的结果要小于like查询的结果。综上: FIND_IN_SET函数中,若前一个字符串包含在后一个字符串集合中,返回大于0的数,该数为前一个字符串在后一个字符串中的位置。2、in是完全匹配,find_in_set()函数是精确匹配,字段值以英文”,”分隔。(str,strlist) : str 要查询的。
2023-07-07 16:47:34
439
原创 An illegal reflective access operation has occurred警告
笔者根据控制台的警告信息,在"java.base模块内的jar包名"处填写的是 java.util.Properties.defaults包在java.base模块内对应的jar包,即 java.util包(感觉这样会比较保险),当然填写其他的好像也可以(前提是在java.base模块内,但是没弄懂具体是什么回事)。deny 不允许所有的非法访问操作,除了启用其它命令行参数排除的模块,例如"–add-opens",这个参数可以参数将某些模块排除出来,让它们能够通过非法反射进行访问。
2023-05-29 13:06:00
2341
原创 vue中 v-model 和 :model 的区别
于是经过我一番研究发现 :model 其实相当于 v-bind:model 的缩写,对于我想要绑定的 input 的值应该使用 v-bind:value ,所以如果在 input 元素上想要使用缩写形式应该是 :value ,经过我的试验发现这种缩写形式确实是可行的,数据可以成功渲染到浏览器。:model 是 v-bind:model 的缩写,可以实现将父组件的值传递给子组件,但是子组件不能传给父组件,无法双向绑定。v-bind:value 可以简写为 :value ,数据只能从data流向页面。
2023-05-25 16:11:38
955
原创 Load key “/Users/jaminye/.ssh/id_rsa“: bad permissions
chmod 600 ~/.ssh/id_rsa ~/.ssh/id_rsa.pub
2023-05-14 08:52:33
213
原创 fast中user_id如何显示user表中的名称_关联模型
>with(['user','doctor','keshi'])//添加模型里面的方法。问题:编辑框内的user_id显示的是nickname 列表里如何显示nickname或是username。需要更改3个地方,控制器,模型,js文件。//关联模型 会员表 user。4.完工,就可以显示名称了。1.控制器index。
2023-05-09 15:25:46
1161
原创 PhpStorm设置等号对齐
1、按 Ctrl + Alt + S 启动设置面板,Scheme 选择 Default 是怎对 IDE 设置的,如果选择 Project 则是只针对当前项目有效。3、点击 OK保存即可,后期写代码只需要 Ctrl + Alt + L 普通的等号赋值都可以对齐,数组的键值对也可以对齐。强迫症写代码一定要求代码整洁美观, 甚至连等号都要对齐。
2023-05-08 13:41:22
1203
原创 Hyperf中的其它事项
到这里,我们整个 Hyperf 框架的学习就结束了,同时,整个 Swoole 系列也就告一段落了。这里先不煽情了,毕竟后面还有一篇大总结,大家有收获吗?不管怎么样,一步一步跟着我走下来,相信多少都会有一点感悟和成长。更重要的,如果有机会,不如尝试在实战中运用一下,这才是真正成长的最佳机会。
2023-05-06 14:43:41
763
原创 Hyperf 运行各种网络服务
是不是总体感觉来看是要比纯手写 Swoole 的这些服务更方便一些呀。毕竟框架走了一层封装之后还是让我们能更容易去使用这些服务了。如果你在日常工作中有这方面的需求,那还是需要更深入地去官方文档中进行更加详细的学习。
2023-05-06 14:42:32
1036
原创 Hyperf操作数据库
今天的内容非常简单,没有什么学习压力吧。一开始就说过了,这个框架的很多东西都和 Laravel 是一样一样的,而且我之前的项目甚至可以达到大部分的代码平行迁移过来。怎么说呢,百花齐放是好事,各种思想经验可以学习借鉴,但天下大同也不是什么坏事,对于业务应用来说会非常方便。有兴趣的小伙伴到这里其实就完全可以尝试尝试用 Hyperf 写一个小程序试试咯!
2023-05-06 14:42:27
1757
原创 安装运行Hyperf
除了我们上面讲的和 Laravel 一样使用路由文件定义路由之外,我们还可以通过一种注解的方式来定义路由。新建一个控制器。/***/注意看哦,在类定义上面,我们使用了一个 PHP8 最新的原生注解。关于 PHP8 的注解功能,可以参考最下方参考链接中的第二条链接,鸟哥有详细的说明。然后在方法上,使用的 @RequestMapping(path="r", methods="get,post") 这种形式,它是 Hyperf 框架提供的注解能力。这两个注释的作用是什么呢?
2023-05-06 14:40:40
1604
原创 redis实现30分钟未支付取消订单
关闭进程 ps aux | grep "nohup php psubscribe.php &" 找到pid 然后kill。代码地址:https://github.com/SmallForest/redisKeyCancel。Redis setex 设置一个指定时间的key,setex order_no 1800 1。设置守护进程 nohup php psubscribe.php &根据callback中的key,去处理业务~这里随意。发布的求租 求购 拼团超时需求无人响应,退回押金。
2023-04-19 11:21:35
245
原创 Mac terminal终端或iterm2出现问号解决方案
是因为配置中有非ascii字符编码,这两个问号本来是好看的箭头,但是箭头在当前字体中是不会被显示的……所以解决方法是重新下载一个支持非ascii编码的字体。上有一个字体:yizhen20133868/fonts。
2023-04-19 09:23:49
1078
1
H+4.9正版源码.zip
2019-06-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人