duangsues.is_a? SaltedFish
60 subscribers
609 photos
6 videos
91 files
562 links
🌶🐔🐟 duangsuse 的日常
尤其喜欢发些奇奇怪怪的东西
和转载别人的东西
Download Telegram
Forwarded from Diana
之前用TimerTask 手机锁屏或者切换应用的话会出现不执行的情况
Forwarded from Deleted Account
左边红线为状态栏, 长黑线为绘制区域,1080P的视频无法填充整个屏幕,如红色快, 如果我把视频居中,整个左边黑块就很大, 能不能占用状态栏的高度, 这是pixel 4 API29
Forwarded from Deleted Account
这是全屏应用为就不能撑满左边呢, 我是新手啊,对特性和厂家标准不是很理解,那位大佬告知一下
Forwarded from 平行线
window.attributes.layoutInDisplayCutoutMode
Forwarded from Tsung @ionull Wu
workmanage是靠系统调度
Forwarded from Tsung @ionull Wu
很久没写过service,现在如果有后台权限的话,用户退出,service还跑吗
duangsues.is_a? SaltedFish
https://t.iss.one/c/1119363280/109316 #reveng ndk onCreate https://t.iss.one/c/1119363280/109356 #huawei homoOs( #旧事重提 https://t.iss.one/c/1119363280/109367 xposed #wechat https://t.iss.one/c/1119363280/109378 #china #robotic #旧事重提 光年实验室 https://t.iss.one/c/1119363280/109402 #framework…
Forwarded from dnaugsuz
你必须学习一个,这并不是复杂的 break continue 控制流,仅仅是索引的区间、递进循环而已

形如:
for (i in 0..10) op(i);
for (int i=0; i<=10; i++) op(i);
int i=0; while (i<=10) { op(i); i++ }
其中, op 可为任何引用到变量 i 的表达式/语句块,下文皆此。
op=System.out::println; 则你会看到 0,1,2,...,10 这 11 个数

这是 inexclusive range ,也就是带右值的 exclusive range 。比如 1..100 ,总共 100 个数 (== 100-1 +1)

编程时常用 exclusive 区间:
for (i in 0 until 10) print(i)
0,1,...,9
如果你要 s[i] 遍历整个字符串 s ,
因为索引以 0 起始(方便机器计算 以及避免区间连接时的麻烦),它的末引数其实是 length-1 ,代码便是:
for (i in 0 until s.length) op(i)
for (i in 0..s.lastIndex) op(i)
for (int i=0; i<s.length; i++) op(i);
其中 val String.lastIndex get() = length-1
其实,若 i 步长为 1,继续条件 (i<=n) == (i<n+1) 且等效 (i != n+1) 、 (i-1 != n) 。

(i<=n) 的区间示例是 (1..n) ,
终止条件 == !继续条件 ,即 while break 后 (i>n) 即 (i==n+1)。


想想,如果你要按2字符为单位迭代一个字符串 s ,便要设置不是1的递增步长。
for (i in 0 until s.length step 2) op(s[i])
这样 s="Winnie"; op=print 时 Wni 便被输出

这样就有一个好:细心的小朋友就会发现实质上这给字符列表分了块—— 0,1; 2,3; 4,5 这 2*3 项
int i;/*另种写法*/
for (i=0; i<s.length-1; i++) op(s[i], s[i+1]);

这样实际就实现了某种 zip([1,2],[2,1]) ,但也要提前写上 IndexOutOfBounds(缩 IOB) 的检查,那么作为练习,实现
<T> void forEachChunk(int size, List<T> xs, Consumer<List<T>> op);
以及自定签名的 zip, zipWithNext 函数。

当然,以上示例的 for while 都没有加 {} ,在工程上这是不利于可读性的;而且我举的例子大部分可用 for (T x : xs) op(x); 即 for (x in xs) op(x) 和仅 Kotlin 的 for ((i,x) in xs.withIndex()) op(i,x) 替换,实际上用到的时候不多。

索引计算的常识和 <,<=,== 及 +,+= (a+=b 等价 a=a+b) 这些运算密切相关,必须学习一个。
Forwarded from dnaugsuz
感觉这个内容并不困难,就是看看而已

记得以前好多程序员喜欢 List<T> wtf; 然后 for (T item : items) wtf.add(op(item)); 的,感觉很冗
Forwarded from dnaugsuz
等到你从 语言入门示例 走过来就会发现,工程界讨厌这种写法

就是玩技巧 这么做也排不上号的
每次都这么写,地方太多了
其实就是 List<T> wtf = items.map(::op); 的意思嘛

只是因为入门时整的都是小玩具,才觉得没有关系,写多了就会厌恶这些东西。
Forwarded from dnaugsuz
他写得的确有点含糊,但是这个程序是有意义的;只能说考的其实只2个空。
Forwarded from dnaugsuz
有些人的确是这样😓
以前我也没做过这种科普题,想想第一次写 Android 应用时我也不会
或许慢慢就会了,但我那时初中没毕业... 劝退也挺好
不用想大陆sfz 了,应该是跟现在上台的一样,用通行证或护照
Forwarded from HBO
现在我用飞机上Telegram内地政府知道不
Forwarded from dnaugsuz
要不要把「身份证」的别字改一下,频道挺大的🤔
Forwarded from 坐和放宽
原来打错字了