HeadlinesBriefing favicon HeadlinesBriefing.com

函数参数与颜色解析

Hacker News •
×

在关于函数颜色的辩论中,有人认为函数参数可以是颜色,并以Go的context值作为例子。Context管理超时和取消,设计为即使不直接使用也要贯穿函数。一旦函数使用context,就应该将其传递给所有被调用的函数,表面上看起来像是一种颜色。

然而,如果所有参数都是颜色,这个概念就不会在函数出现50多年后才被发明。异步具有独特的性质值得捕捉。为了澄清,考虑一个变更依赖图:改变调用栈深处的函数属性可能以三种方式影响调用者:无需改变调用者、直接改变调用者、或改变栈中所有函数。

颜色迫使所有上层函数做出反应,而普通变更只传播到调用者并可以被捕获。在实践中,函数打破链条,将上层函数与下层变更隔离。结构化编程的存在就是为了隔离变更,如果每个参数变更都迫使整个栈向上变更,那将无法管理。