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 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 肯定是不能内联的,我刚才想的是
我开始的时候是想给自己的 github.com/ParserKt 用上这个 trick 的,然后性能估计就可以赶对面的 scala fast-parse
但是既然主要是编译期,而且还 exactly one field…… 感觉和幻想有点差距,而且 one field 里的 property 肯定是不能内联的,我刚才想的是
inline class = >1 * inline funsGitHub
ParserKt
Naive one-pass recursive descent parser framework for Kotlin - ParserKt
Forwarded from dnaugsuz
是啊,这应该可以支持了吧
不过 reified 好像和 inline 没关系啊…… 啊,不对,就可以
不过 reified 好像和 inline 没关系啊…… 啊,不对,就可以
Array<T> 了Forwarded from dnaugsuz
reified type parameter for reified classes ?Forwarded from dnaugsuz
可 reified 在之前的 Kotlin 里一直和 in/out 一样,是 type parameter modifier 啊
Forwarded from dnaugsuz
Kotlin 一直以来是门相当克制的语言, reified 的中文是「整齐的」,换到 type parameter 的意思是让它和其它 real class(type) 一样能进行 is, ::class 这种操作,但
我觉得可以做成 annotation 的形式, Kotlin 之前
reified class…… 的语义是什么我觉得可以做成 annotation 的形式, Kotlin 之前
@BuilderInference, @DslMarker 又不是没有过Forwarded from dnaugsuz
感觉目前的
inline class 算是 extension val/fun 的一种规范化形式(+type checks),但它实际上的确给了 exactly one field class 一种 zero cost abstraction (compile-time fully) 的定义方法。其他人的理解有不一样的吗?Forwarded from 「VoP」維尼之聲 - Voice of Pooh🔊
今天是【404删贴封号日】,趁一天还未结束,带大家回顾下两个月前的奇妙时刻🥳,第二个黑底视频不是要各位看清说了什么,而是看看说-了-多-少💁♀️
这些人中,有多少没忘记是什么东西在谋害性命,假如那一刻有你,可以在评论区留言😁
#四零四
这些人中,有多少没忘记是什么东西在谋害性命,假如那一刻有你,可以在评论区留言😁
#四零四