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
Forwarded from Mivik Q
感觉你这个greedy不太对啊 @duangsuse
Forwarded from dnaugsuz
之前也有说,ParserKt 的目标并不是取代 Regex 或者做 NLP 之类非常复杂的解析器(那几乎不能算单纯的解析器了,何况 Regex groups 对副作用利用比较强,对 PKT 而言用 AlsoDo 和 StatedFeed 可以做到,但不推荐)

ParserKt 的目标是为各种相对规范的编程语言提供模式匹配 read/show (back) 的能力,也提供类似代码高亮这种常见兼容用途

我不会试着让它包容万物,它只需要保持简单的核心就好,包括现在解析一些复杂语法的东西 (NumUnit 和自动 Number 运算的类型转换、Layout 缩排语法的解析)都是作为 parserkt-ext 另作打包的,就是为了尽可能降低学习开销
Forwarded from dnaugsuz
不过,ParserKt 不能用来写命令行解析器,这个非常GG (主要是因为我开始觉得可以写,现在就有点郁闷)
Python 里用 import argparse 非常容易就可以定义一个解析器,我也写过命令行参数辅助解析
一个参数大概就是 add_argument(prefix, metavar, nargs, type, default, action, help) 这几个参数,action 可以 store_true 来实现 flag 什么的(当然前提肯定是动态类型)

ParserKt 理论上可以用来做命令行解析器的核心(如果封一层来构造 Contextual<String, Pattern<String, T>> 的话),但没法直接对应到 Pattern 对象,而且一旦有 nargs="+" 的情况,就十分不好处理为不可变数据了……
Forwarded from dnaugsuz
有几天没写代码了…… 很咸鱼
Forwarded from dnaugsuz
其实这个 while(true) 也可以重写为
while (greedy || count < bounds.last) 的,早就该改改。
已经有 n 个就不必多解析了,比 while(true) 要结构化一些
Forwarded from dnaugsuz
不对,刚刚分析了一下控制流
while (true) {
depend++
if (!p) break;
}
确有别于
while (p) {
depend++
}

区别在于第一次,前者至少执行一遍,相当
do {
depend++
} while (p)
Forwarded from dnaugsuz
这么说 bounds = 0..0 的情况其实我的程序不是最佳实践!没有利用循环操作的兼容性…… 也没有 require 过 param
#Firefoxabout:config 设置 browser.urlbar.decodeURLsOnCopy 为true 可以复制 UTF-8 解码的 URL
Forwarded from 记挂
这个有没有影响
Forwarded from dnaugsuz
你说是 (html!!) 还是 body?.string() ?
🤔我觉得没影响,你要拿 String 那你就拿 String。
Forwarded from dnaugsuz
如果你要做,还有更好的方法吗……
要这么写就别担心太多

为什么 html 是 var 啊…… 你应该写
val html: String = client.get(LOGIN_API).body?.string() ?: throw Errors.NetError() 不是么…

为什么你要写 html!! 啊,而且如果你只 parse(resp.string()) 的话调用 string() 也没问题啊
Forwarded from 记挂
Forwarded from 记挂
下面要用到。。懒得新建变量了。。
Forwarded from dnaugsuz
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from dnaugsuz
草生,你这么编程的话…… 在一段子程序里,是一类东西都可以叫一个名字了

用户的 1:1 宠物叫 val pat,用户 1:N 的寄养宠物也叫 for (pat in pats) ,然后你就可以把 patpat 变成一个 var 来“复用”废“好大脑力”编造的名字了,真棒……

如非必要,请别写 var …… 你要明白有些 val 都是可以 inline 进引用处的,只不过为了简化代码提升可读性才拆开成不可变具名量,你用 var 语义就全毁了。

真正用 var 的情况往往是 for while 里循环更新变量,你这种完全可以内联的……
Forwarded from Hinnka Zhou
@ask2332 这是你想要的效果吗?
Forwarded from dnaugsuz
#OCR #Java #code
float scale = 246f / 255;
Paint paint = new Paint() ;
ColorMatrix matrix = new ColorMatrix();
matrix.set(new float[] {
scale, 0, 0, 0, 0,
0, scale, 0, 0, 0,
0, 0, scale, 0, 0,
0, 0, 0, 1, 0,
});
ColorMatrixColorFilter filter = new ColorMatrixColorFilter(matrix);
paint.setColorFilter(filter);
getWindow().getDecorView().setLayerType(View.LAYER_TYPE_HARDWARE, paint);