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
duangsuse::Echo
#Java #code UI.render(Application().title("table").width(1200).height(500)) { val colOpts = Column("Options").widgets(/*rendering widget instead of row-object property*/ Button(/*auto-id, must*/).text("OK").sameline(true).onClick { it.text((it.getData("rowData")…
#plt #types 下午走在路上就想着 IO 便利性函数该如何封装

说(o) 说点(s) (即 println/print)是既有的,增添 说报错(s) ,有点半通不通但意思准确

麻烦的是之前 听去数一 (加动词 去 的显示无参调用可以不带括号) 这种头疼的 API 不好优化,或可变成 例『听』为 ……量 数 取者,待写()。 的这种形式但不太准确

于是就说可以(而且:...
对何<真型> 恒事 听() 为
量读造器=伴生例<型、可读造>()
量参=建元组<提取自 参数型<读造器::去建>()>()
对读造器的参数里的,参去加(它)。
回读造器去建(提取自 参)“编不下去了……”

搞得这有点高级了…… 像 C++ 的 template<> ,还打算搞 组<交集型<数4、数8>()“=断止”> 、 组<并集型<数1、数4>()“=值”> ,后来发现全身想太多, 可为<数、文> 这样的 Either<A,B> 还比较常见。

不过我终于明白 trait Bounded 可以怎么实现了,以及它不需要高端语言特性的事情了…… 以后可以试着实现下

但是还有个问题,就是如果仅对 thing T 1:1 定义的 compaion-insta 支持默认建立类型,依然需要“T 的 companion 必须实现某 trait”的类型约束,不可能隔离开T和其伴生类型,所以还是要 template 才能真的将 static/instance 的 type check 统一化😂

对何<型、构型> 恒事 伴生例型():构型 = 编译器实现()
对何<数型> (其中 伴生例型<数型>():有界)
内联的恒事 取最小值() = 取伴生例<数型>()的底


C 时代的类型系统还不如说是“sizeof 计算系统”,而 Java 则更高级些,现在如何区分编译期和运行期的职责和计算,保证灵活性,是一个问题了。

我希望这种系统的工作原理必须简单直观,当务之急是学习如何实现编译期计算,区分常/变量参数,相信有了易用的编译期计算,允许用户程序/表达式与编译器协作,类型运算符的问题就迎刃而解。
馆长: #web #android #coolapk
有没有懂把网站打包成app的大佬

PollutedHeck:
搜 hybrid app 有真相

馆长:
之前用过fusionapp

弄出来兼容不好
#wechat #tencent 保护用户隐私(指不被第三方擅自独享偷窥)
Forwarded from IT之家 RSS
张小龙:为了保护隐私,微信不久后将灰度测试属于自己的输入法

https://www.ithome.com/0/530/992.htm
#zhihu #china 🤔有没有人知道为什么中国要搞外汇管制啊,听说从台湾到中国大陆一次都不可以超两万元 ,其他国家也有吗?
#Kotlin 支持跨平台编程
Forwarded from RSSBot
Kotlin Programming Language by JetBrains – Kotlin Blog | JetBrains
Results of the First Kotlin Multiplatform Survey
Forwarded from dnaugsuz
from subprocess import check_call
from os import path
from operator import gt
def ffmpeg(src, dst, *args):
if path.exists(dst) and gt(*map(path.getmtime, [dst,src])): return
check_call(["ffmpeg","-i",src,*args,dst])
return dst


是阻塞的,这样可以再 open() 输出(之前Java写过)
Forwarded from VOT SWRING
这个问题可以加interface解决,但final的类和inline extension就无解了
Forwarded from VOT SWRING
其实在上一级class或者interface里面写extension fun已经达到了这种(A, B).(C)->D的效果,现在缺少正式的语法
Forwarded from dnaugsuz
fun (String|Int).getStringLength(): Int
即: (A,B).() -> Int
是啊,直接在共同超类定义就好
为什么要引入这种... 找不自在吗
Forwarded from dnaugsuz
奇怪,是这个意思,很易混啊
Forwarded from dnaugsuz
fun (View, Float).dp() = this * resources.displayMetrics.density

// explicitly: fun (View, Float).dp() = this@Float * this@View.resources.displayMetrics.density class SomeView : View { val someDimension = 4f.dp() }

感觉这个人有点不了解 Kotlin 的 super<A>.wtf 是尖括号而不是 label 语法…… 不止是有点 alien, 这是什么鬼概念啊
resources.displayMetrics.density 在 Float 上不存在,是不是此 fun 在 Float 依然有效…… 还是说隐式 View 上下文?

引入隐式性可不是一件小事情,那么确定没有其它解法吗?
Forwarded from dnaugsuz
with(dispatchReceiver) { extensionReceiver.doSomething(params) } 果然他们还是要搞隐式参数啊…… 但这个语法其实未必非要 ext-fun 接受“另一个 receiver(this)” ,写成 fun Float.dp(dim:Float) = this*diminterface View { fun Float.dp()=/**/ } 也可以啊(不过要加的话这个用途还是窄,但也可以只加 class 内部 ext fun 的那个支持,但我很想喷他“为 logger 优化”的那个,是没学过面向对象吗)
Forwarded from VOT SWRING
multi scope extension
Forwarded from dnaugsuz
也算好吧, scoped extension 能加到 scope 的外面去,解决了语法只能指定 receiver 的缺陷
Forwarded from dnaugsuz
这个高级特性是,你
interface XScope { val rate: Int; fun Int.wtf()=this*this@XScope.rate }
class X(override val rate: Int): XScope

可以
X(2).run { 1.wtf() } == 2
等于有 fun (X/*下的*/,Int).wtf() = this*rate
它不解释我还以为有 fun X.wtf(): Int
语法可能最后还是会改下