出了一个说大不大说小不小的车祸

晚上初见锦上京被EX道中的弹幕密度气到了,想着出去打打舞萌放松心情,结果外面还在下雨。

本来今早打算早起避开未成年人高峰去打舞萌的,社畜本来就没什么空,更没有寒暑假,也就只能趁着小崽子们没睡醒的时候去打打机了。

结果不知道是最近休息太差还是怎么的,一觉睡到十点半,早起打机计划宣告泡汤。

看着外面的大雨,本来在想,要不去健身房练腿算了,但是练腿下班之后什么时候都可以练,舞萌可不是什么时候都可以打,更何况下雨可能反而更少人。

于是下决心就算冒着小雨也要出门。

现在想想,应该去练腿的。

继续阅读“出了一个说大不大说小不小的车祸”

协变,逆变与不变

不知道你在看到这个标题的时候会不会想:这都是什么狗屁玩意?

至少我第一次看到这三个词的时候是这么想的。

这三个概念在计算机科学中和类型系统有关,主要应用在泛型参数中父类和子类之间的赋值约束之间。

如果你看不懂上一句话说什么,很正常,光说这个我也看不懂,所以我们还是用例子来解释吧。

继续阅读“协变,逆变与不变”

实现一个满足 A+ 标准的 Promise

本来我对这种八股是不屑一顾的,什么手写 Promise 手写 DeepEqual 之类的我都不屑一顾。

直到我真的笔试遇到了这种题。

因为没有实现过,笔试的时候也没有足够的时间捋清楚逻辑,所以基本上测试用例只过了几个最标准的,复杂一点的一个都没过。本来觉得这种东西没什么好研究的,后来发现这个东西有专门的测试集,这就有趣起来了,毕竟我还是挺喜欢那种测试用例全通过的感觉的。

幸好这个问题已经有不少人研究过了,有很多现成的源码可以参考。这篇主要记录一下我看代码时的困惑和难点记录。

继续阅读“实现一个满足 A+ 标准的 Promise”

明明 next.js 已经关闭严格模式,为什么 useState() 还会跑两次?

其实这次有点标题党,但确实是我在写小玩具的过程中遇到的问题。

省流回答:这是 next.js 对 component 的机制,无论是 client component 还是 server component 。

继续阅读“明明 next.js 已经关闭严格模式,为什么 useState() 还会跑两次?”

由 npm install 失败引出来的证书问题

起因

前不久刚配了新电脑,想在新电脑上继续开发之前电脑上没有写完的项目,结果拉下来一 npm install 之后就:

npm install 失败
对应的日志

我就觉得很奇怪,明明是一样的工程,一样的 package.json,一样的 package-lock.json,怎么换了一台电脑和一个网络环境就错误了?

于是我开始想办法解决这个问题。

继续阅读“由 npm install 失败引出来的证书问题”

C++ 在 MSVC 编译器环境下如何向 Windows 控制台或文件正确输出中文

我没想到这系列还能出第三期,我佛了,Windows,你拿什么来赔我!

这次的问题是:在遍历窗口句柄想要输出每个窗口的标题时,中文标题无法正常输出。

继续阅读“C++ 在 MSVC 编译器环境下如何向 Windows 控制台或文件正确输出中文”