rust安装
你真正的凯旋,在于你不断地毁坏你的凯旋门。——阿多尼斯《我的孤独是一座花园》 根据这本rust语言圣经入门 首先安装C++环境 进入:https://visualstudio.microsoft.com/zh-hans/visual-cpp-build-tools/ 点击下载: 下载完毕后打开 选择C++,修改路径 我们重启。。。 然后安装rust 进入:https://www.rust-lang.org/learn/get-started 点击下载 打开后弹出黑框 按下回车 我们打开cmd输入命令测试一下是否安装完成: 12rustc -Vcargo -V 都显示了版本号即为成功
MP-p6spy日志分析打印
我们杀人不用愤怒,而用笑。——尼采。 按照官方文档步骤 首先引入GAV: 12345<dependency> <groupId>p6spy</groupId> <artifactId>p6spy</artifactId> <version>最新版本</version></dependency> 然后是修改配置: 注意此处协议前加上p6spy 驱动也要改为P6SpyDriver 1234567spring: datasource: driver-class-name: com.p6spy.engine.spy.P6SpyDriver username: xxx password: xxx url: jdbc:p6spy:mysql://localhost:3306/ruben?autoReconnect=true&zeroDateTimeBehavior=CONVERT_TO_NULL&useUnicode=true&char...
lambda小技巧
人类最不道德订户,是不诚实与懦弱。——高尔基 经常有朋友问我,老是遇到参数为一些lambda的函数,我怎么知道对应的lambda怎么写呢? 这函数式编程,真是一件美事啊~ 对于这种情况,我们依靠我们强大的idea即可 例如此处我写到这里写不会了 1234User user = new User();// idea提示下方参数,如果没显示,光标放到括号里按ctrl+p主动呼出 |Function<? super User,?> mapper|Opt.ofNullable(user).map() 这里idea为我们提示了参数类型,可这个Function我也不知道它是个什么 实际上,我们new一个就好了 123Opt.ofNullable(user).map(new Fun) |Function<User, Object>{...} (java.util.function) | <-戳我 ...
vue中props中值未监听
每段记忆都是零碎的,犹如残破的蛛丝,无声无息的藏在黑暗的角落里——桐华 我今天简短测试了一下: 编写一个组件,给它设置一个props属性user 这里给它一个默认值{ age: 21 } 12345678910111213141516<template> <div> <slot :user="user">默认内容</slot> </div></template><script>export default { props: { user: { type: Object, default: () => ({ age: 21 }) } }};</script> 然后我们在外部引用该组件并传入该props 编写一个方法来改变当前userInfo的值 123456789101112131415161718192021222324252627282930<templ...
vue中新增属性视图问题
计利当计天下利,求名应求万世名——于右任 我们在进行vue前端开发的时候,可能会遇到这种情况: 首先我们此处双向绑定了一个变量中的属性 12345<template> <div> <div>{{ myObject.newProperty }}</div> </div></template> 然后下面的data只有该对象变量,并无此属性 12345678<script>export default { data() { return { myObject: {} }; }</script> 此时我们调用一个方法,给它的新增变量赋值 1this.myObject.newProperty = 'ruben'; 可以看到外部是并未监听到,视图没有更新,导致我们页面没渲染上去该变量属性的值 此处我们当然可以使用vm.$forceUpdate去强制更...
js数组去重
最大的挑战和突破在于用人,而用人最大的突破在于信任人。——马云 我们使用数组解构+Set去重: 12let list = [1,1,2,3]list = [...new Set(list)] 这里set是一个不重复的集合类,构造函数中我们传入了另一个list 如果是两个数组去重 123let list = [1,2,3]let array = [2,3]list = [...new Set([...list,...array])] 写法如下:
小程序 define is not defined
你如果认识从前的我,也许你会原谅现在的我。——《倾城之恋》 今天小程序报错define is not defined 结果是因为新项目默认用的最新的基础调试库。。。 改回调试库就好了
水波纹按钮动画
生活是种律动,须有光有影,有左有右,有晴有雨。——老舍 代码: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> .login { display: flex; align-items: center; justify-content: center; margin-top: 200px; } ...
TTL的CRR操作
要有最朴素的梦想,即使明天天寒地冻,路远马亡。——海子 前段时间遇到的TTL(TransmittableThreadLocal)在异步编程中的上下文丢失问题,我是采用了直接更换线程池的方式 但今天抽空看了下官方文档,发现了: 所有TTL值的抓取、回放和恢复方法(即CRR操作) CRR:capture(快照)、replay(回放)、restore(备份) 自己简单写了个测试用例,用于在CompletableFuture和并行流场景下解决ThreadLocal的上下文丢失问题 大伙一定要复制到本地跑一下,需要的GAV是这个: 12345<dependency> <groupId>com.alibaba</groupId> <artifactId>transmittable-thread-local</artifactId> <version>2.12.4</version></dependency> 代码: 12345678910111213141516171819...
微信群聊头像组件
直起腰来,我看见蓝色的大海和帆影。——切·米沃什《礼物》 分享一个群聊头像组件 组件地址:https://ext.dcloud.net.cn/plugin?id=5456 效果: 示例代码: 123456789101112131415161718192021222324252627282930313233343536373839<template> <view> <button type="primary" @tap="cerate">创建群组头像</button> <canvas :canvas-id="canvasId" style="width: 120px; height: 120px; margin: 36px auto;"></canvas> </view></template><script> import createAvata...
