Forwarded from みつき そはら | 椒鹽九肚魚🐟 | 努力學習中!
C++ 是你可以把子類別 cast 成父類別,或者傳指計/引用 因為子類的成員總在父類後面(?)
Forwarded from dnaugsuz
C++ 是 template 啦,我不熟悉,但它的类型检查应该更玄幻,不是这么规范了
大意了, Object..void(无值类型) 应该说前者是顶,但它是最小;后者是底,但它是最大
(话说一般 a..b 不是 a<b 的嘛)
所以 <T:/*extends*/A,B> 才指 intersection UBound ,因为它是「上限」?
不对, #English 里 upper-bound 应该是下限的意思🌝
(话说一般 a..b 不是 a<b 的嘛)
所以 <T:/*extends*/A,B> 才指 intersection UBound ,因为它是「上限」?
不对, #English 里 upper-bound 应该是下限的意思🌝
Forwarded from dnaugsuz
是的,但是 Java 暴露 super/extends 的限界约束甚至 intersection superextends(upper bound) ,没有声明处型变(declaration site variance)
^嗯不对,insect type 是 Kt 的术语,Java 的是 multiple bounds
但我目前没找到非 extends A&B 的用法
给实际编程造成了巨大麻烦,也没有把这个概念改造得好到哪里去。我还是觉得 Kotlin 干得漂亮,掩藏了这些复杂性😘
^嗯不对,insect type 是 Kt 的术语,Java 的是 multiple bounds
但我目前没找到非 extends A&B 的用法
给实际编程造成了巨大麻烦,也没有把这个概念改造得好到哪里去。我还是觉得 Kotlin 干得漂亮,掩藏了这些复杂性😘
Oracle
Bounded Type Parameters (The Java™ Tutorials >
Learning the Java Language > Generics (Updated))
Learning the Java Language > Generics (Updated))
This beginner Java tutorial describes fundamentals of programming in the Java programming language
Forwarded from dnaugsuz
上逆变 是什么😳
(T as T1) 的转换?如果是类型安全的话就子类型兼容了,为什么要靠强转断言类型安全?
嗯…… 如果你说有类型损失的,需要断言回来(UnsafeVariance),我这有个例子 ,但是代码复用整到这个程度,估计也没谁了🌚(草
items 的是 <out T>, 如果安全的话就把 out 去掉,但那就不能真正做到 Tuple 的复用了。
我能断言指定 items[i] 位置的 func 可以接受 T ,因为它本来就是被取并集损失了精度的,于是写了
很多人始终不会遇到这种问题,老实说这已经属于很极端的代码复用设计了😒
(T as T1) 的转换?如果是类型安全的话就子类型兼容了,为什么要靠强转断言类型安全?
嗯…… 如果你说有类型损失的,需要断言回来(UnsafeVariance),我这有个例子 ,但是代码复用整到这个程度,估计也没谁了🌚(草
items 的是 <out T>, 如果安全的话就把 out 去掉,但那就不能真正做到 Tuple 的复用了。
我能断言指定 items[i] 位置的 func 可以接受 T ,因为它本来就是被取并集损失了精度的,于是写了
(items[i] as Consumer<@UnsafeVariance in T>).accept(v) 的这种代码,其实它本身就是 in, 但为了写存储的兼容被迫暂作 out 了而已。很多人始终不会遇到这种问题,老实说这已经属于很极端的代码复用设计了😒
GitHub
ParserKt/ParserKt
Naive one-pass recursive descent, scannerless parser framework for Kotlin - ParserKt/ParserKt
Forwarded from LetITFly News (LetITFly 让技术飞)
https://t.me/vikacg/1178
如今,Hosts 文件 / SNI 服务器 / DNS(包括 DNS over TLS/HTTPS)均不应视为科学上网的手段。
如今,Hosts 文件 / SNI 服务器 / DNS(包括 DNS over TLS/HTTPS)均不应视为科学上网的手段。
Telegram
維咔VikACG
我们注意到,自从360推出自家的DoH(DNS over https)后,cloudflare和Google的doh服务正在中国大陆各地被陆续屏蔽,我们也认为两者之间可能并没有任何关系,只是时间上过于巧合。所以身在中国大陆的您需要注意的是,在之后您可能只能通过科学上网(VPN)访问维咔主域名,而非doh(安全DNS/私人DNS)
Forwarded from Rachel 的消息发布站点 (Rachel 看到我请去复习)
这么多天没一个 commit 的原因是在整这玩意儿:
https://github.com/Rachel030219/YibanSubmission
是我校每日易班健康打卡的小工具,理论上订阅频道的各位用不上,但是如果碰巧各位打卡流程也是「易班→易班校本化→每日健康打卡」,那么这个小工具在简单地修改后应当也能派上用场。
我认识的几位学长的支持与贡献是这个应用的基础,特此感谢。
值得一提的是,这是我写过网络请求最乱最脏最重、UI 最「缝合怪」以及含有最多动画的应用。
https://github.com/Rachel030219/YibanSubmission
是我校每日易班健康打卡的小工具,理论上订阅频道的各位用不上,但是如果碰巧各位打卡流程也是「易班→易班校本化→每日健康打卡」,那么这个小工具在简单地修改后应当也能派上用场。
我认识的几位学长的支持与贡献是这个应用的基础,特此感谢。
值得一提的是,这是我写过网络请求最乱最脏最重、UI 最「缝合怪」以及含有最多动画的应用。
GitHub
GitHub - Rachel030219/YibanSubmission: A tool to evolve Yiban's health submission experience.
A tool to evolve Yiban's health submission experience. - GitHub - Rachel030219/YibanSubmission: A tool to evolve Yiban's health submission experience.
Forwarded from dnaugsuz
看来我真的要吃土了
感觉这样下去被全盘复制到可能性很大啊,算符「是」都被取走了,要是逻辑算符否定和「逗号表示法」也被抄走我就完了,嘤嘤嘤
救救孩子😭
感觉这样下去被全盘复制到可能性很大啊,算符「是」都被取走了,要是逻辑算符否定和「逗号表示法」也被抄走我就完了,嘤嘤嘤
救救孩子😭
补充一下我真实的观点:绝句的新特性很多,但核心特性也不过七八个而已,我最看重的就是逗号表示法(囊括了逗句简写和「为」「其中」关键字)、逻辑算符否定、记法和类型推导,此外还有多语种API命名互译之类工具性的东西,所谓「人称文法」更多是一个提纲性、辅助学习者记忆的东西,本身无关键意义。
但是,其实我最看重的缩进语义「逗号表示法」,也是最难被抄走的——目前我自己也还在实验中,要设计的边角情况很多,如果真的有人能写出来,我只能是崇敬大于嫉妒了,虽然我明白自己迟早会实现它。
之前的『文言编程语言』,我是一点都不慌张,因为它就是一位算法系前端倡导下一群前端共建的游乐园,不重视真正的表现力更惘谈 layout(缩进)等实用的学院派元素,无论在语法还是语言结构都不足以涉足应用编程,现在也一样。
不过也必须注意了……
但是,其实我最看重的缩进语义「逗号表示法」,也是最难被抄走的——目前我自己也还在实验中,要设计的边角情况很多,如果真的有人能写出来,我只能是崇敬大于嫉妒了,虽然我明白自己迟早会实现它。
之前的『文言编程语言』,我是一点都不慌张,因为它就是一位算法系前端倡导下一群前端共建的游乐园,不重视真正的表现力更惘谈 layout(缩进)等实用的学院派元素,无论在语法还是语言结构都不足以涉足应用编程,现在也一样。
不过也必须注意了……
不过呢,我发这么多不是因为嫉妒,只是因为心态有点摇摆;其实,中文的计算器我也写过,而且稍稍扩充下就可以兼容这个项目目前的示例🌝 但我也该警醒了
另外,(==) 翻译成「是」,其实是非常普遍的翻译方法,只有两成在用「等于」的直译,这层面没什么好推陈出新的。
没有人是可以永远站在相对较高的位置的,除非是一个比你小又比你强的大佬,那你就永远无法超过他了|・ω・`)😂
另外,(==) 翻译成「是」,其实是非常普遍的翻译方法,只有两成在用「等于」的直译,这层面没什么好推陈出新的。
没有人是可以永远站在相对较高的位置的
Telegram
duangsuse::Echo
两个大佬都比我聪明,都用了 Kotlin sequences 和大量的 infix notation ,而且是 LL(*) 的 (regex)tokenizer-parser 架构;并且,我也见到不少和函数式领域有交叉的名词(总之高大上就是了)
CakeParse 的包结构相当复杂,而且还用的是 CachedSequence<TokenInstance> …… 真不是一般的复杂,尤其是命名上。
better-parse 的 Tuple 和 And 用了 codegen(n_max, output) Gradle…
CakeParse 的包结构相当复杂,而且还用的是 CachedSequence<TokenInstance> …… 真不是一般的复杂,尤其是命名上。
better-parse 的 Tuple 和 And 用了 codegen(n_max, output) Gradle…