duangsuse::Echo
718 subscribers
4.26K photos
130 videos
583 files
6.48K links
import this:
美而不丑、明而不暗、短而不凡、长而不乱,扁平不宽,读而后码,行之天下,勿托地上天国。
异常勿吞,难过勿过,叹一真理。效率是很重要,盲目最是低效。
简明是可靠的先验,不是可靠的祭品。
知其变,守其恒,为天下式;穷其变,知不穷,得地上势。知变守恒却穷变知新,我认真理,我不认真。

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
duangsuse::Echo
唉简单也有简单的难处,要是 Jawa 支持 unsigned integers 就不必操心了
其实支持如果仅仅有 ushl 这样的支持也不吼啊,因为数值带不带符号位说到底表示上还是有大区别
现在我有点混淆 Nat8 和 byte 这两个概念的意思……
规律就是:只要和 Nat8 不直接相关的(比如一个函参名),都叫 byte……
This media is not supported in your browser
VIEW IN TELEGRAM
考虑一下在适合的时候抛出 EOFException
This media is not supported in your browser
VIEW IN TELEGRAM
现在基本可以认为,底层读写部分快写完了
就剩下测试 Writer 了
This media is not supported in your browser
VIEW IN TELEGRAM
现在我修复了 Writer 里关于 bitwise operation 的 bug,程序的底层输入输出架构现在可用了。
程序尤其注重抽象性,连测试都是平台不直接相关的,方便移植到各种各样的底层来使用。
不像 Parser 的函数式接口可以有方便的 then,这里做不到,因为既要能读又要能写,不可能单独在读的时候转化为另一种数据类型。
其实也不是不可以,但那样的收益就太低了,要同时写 from 和 to
const val signBit = 0x0000_8000
internal fun Int16.uExt(): Int32 = if (this < 0) {
signBit.or(Int16.MAX_VALUE.minus(this).inv())
} else this.toInt()
This media is not supported in your browser
VIEW IN TELEGRAM
正在考虑还有什么没有完成的…… 啊,是 typed array。可是这个没法完成的…… 好像也不是
Bitflags 也可以考虑一下
不得不先对 lib 部分编写 Bitflags、boolean read,进行 cleanup 再考虑模块的其它问题
如此屑模板化的代码,就不怕别人吐嘈你吗?
不怕别人吐嘈,因为同样的逻辑,Java 里别人写了 560 多行,模板化有过之而无不及。
主要做了一些 minor patch
没有讲解 0x8000 那种东西是什么,可能到时候会注释
实在是太屑了,一个『框架』居然只写了 15 个测试
Seq 的 aligned read/write 可以考虑一下,有必要弄一个子类出来?可是 aligned write 该如何…… witer 可没办法 align 啊,它不记得自己 write 了多少……
我觉得这个问题…… 真的没法解决吗?写一些子类试试