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
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
语法可能最后还是会改下
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 呢 语法可能最后还是会改下
积极思考了一下, 绝句 里此特性能否支持。
首先这是扩展成员(extension) 查找的问题,实现不难但要增加一个case,修改二进制内子格式(作用域混入的 2*thisArg)

就目前的语法,它肯定要改。 我看到 ((A,B).() -> R) 的函数类型就误会为 (A,B)=(A|B) 了

最开始是说 fun B.opt(): R in A (有点 Kotlin 化,in 也有前移可能)
后来觉得, implict this 的冲突应该提上改革点,正好绝句「人称文法」的第二人称代表 作用域混入 ,就 事 B.opt():R 你 A = op(我、你的x) 这样也行

我觉得虽然有点简短 (可以用 其中 但我觉得无意义),实际写起来也容易理解
既有的 隐式 关键字好像没有用,因为它只能隐式构造器和数据类参数
Forwarded from duangsuse Throws
#China #moha #bear
🐱:社会主义不是口头的空想或者空气,它体现于生产资料的公有制和共同劳动;社会主义实行下去,人们可以实现各尽所能、各取所需的共产主义。
🐻:我继承《他🐸改变了中国》后的特色社会主义(音缩 zbzy),社会主义核心价值观是24个字,国有最富、国家最大、宪法最重。
新时代的社会主义依旧为人民服务,而国家由人民代表的大会做主,即人民亲自当家、人民亲自做主,我们做客。
Forwarded from AlPlank (Al Pt)
wechat 唯一一点好就是相对其他软件能稍微管住自己加 feature 的心态,让用户不需要花费太多精力在"了解怎么用上"。

这一点只有个人开发者鸽子掉的项目能比得上