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

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
Forwarded from Mivik Q
获取泛型我记得在dalvik上貌似是用不了
Forwarded from Oasis Feng
可以用
Forwarded from Mivik Q
老实说我也没记着有什么android上的库强依赖这个特性的
Forwarded from Oasis Feng
大部分都是纯 Java 的库,但 Android 开发用的很普遍的,比如 GSON。
Forwarded from dnaugsuz
🤔 关于 boxing 感觉最普遍的理解是 IntArray vs. Array<Int> ,前者 unboxed
不过也有 int vs. Integer 的,应该说最准确的概念是「primitive值还是引用」,虽然 Java 里也没有 Integer.setValue
所以说不能脱离 Kotlin/JVM 的后端谈 boxing,因为只有 Java 存在 primitive 的概念,正如 Kotlin 也没 field
Forwarded from dnaugsuz
我不知道啥是 inline class
它能在编译期内联所有 val 内部的 fun
inline classthis 是存在哪里,能把所有属性内联进去吗
Forwarded from dnaugsuz
草,虽然我可以去看,但能不能直接先在这里讲一下
Forwarded from Mivik Q
C++那边才是真正的zero-cost(除开virtual
Forwarded from Oasis Feng

nowhere
Forwarded from dnaugsuz
C++ 的 template 被学计算机图形学的人觉得编译期开销太大,据说有的人引几个项目,结果 32G 相当的机器编译都要 4 小时以上
Forwarded from dnaugsuz
🤔 听起来是个非常好的主意,如果以后有机会并且保证兼容可以考虑移植一些项目
Forwarded from dnaugsuz
呃…… 比如说,一些 "cutting edge abstraction" 吧
记得当时举的例子有一个 inline class Point ,但我没看懂它到底起啥用
Forwarded from dnaugsuz
那样的话感觉和 scala 的 implicit constructor 和原有的 extension member 没有啥区别啊……
Forwarded from Mivik Q
差不多想到为什么inline class不能多个基础成员,估计又是兼容jvm反射的参数调用之类…
Forwarded from dnaugsuz
inline class DoggoId(val id: Long)
data class Doggo(val id: DoggoId, … )// usage

val goodDoggo = Doggo(DoggoId(doggoId), …)
fun pet(id: DoggoId) { … }


这么看它是 typealias 的扩充,和 Haskell 里的 newtype 有点像
Forwarded from Oasis Feng
typealias 的主要问题是无法 type-safe
Forwarded from dnaugsuz
是的,我经常 typealias Cnt = Int (例如 val Sized.size: Cnt)
但是 >=0 检查怎么做到 compile time,而且这往往是编译期无法推断的
Forwarded from dnaugsuz
没听说过,看起来不是我开始想的那样
我开始的时候是想给自己的 github.com/ParserKt 用上这个 trick 的,然后性能估计就可以赶对面的 scala fast-parse

但是既然主要是编译期,而且还 exactly one field…… 感觉和幻想有点差距,而且 one field 里的 property 肯定是不能内联的,我刚才想的是 inline class = >1 * inline funs
Forwarded from dnaugsuz
是啊,这应该可以支持了吧
不过 reified 好像和 inline 没关系啊…… 啊,不对,就可以 Array<T>
Forwarded from dnaugsuz
不还是 experimental 的吗…… 还有修改的机会