问题标签 [method-chaining]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
4024 浏览

scala - 实现支持方法链的 Scala trait 的最佳实践

我想制作一个特征,为类添加一些属性并使链接方法成为可能。在 Scala 2.8.1 中测试。

在这种情况下,最常见的做法是什么?(首选类型安全的方式)

0 投票
1 回答
320 浏览

terminology - 流利的接口和方法链有什么区别?

问题与标题相同。:)

0 投票
1 回答
299 浏览

ruby-on-rails - 访问链中以前的方法(Ruby(on Rails))

假设我为员工、经理和公司开设了课程。如您所料,这些继承自ActiveRecord并且都关联。

我有两个Employee该类的实例,bob并且jane. 他们都在同一家公司工作,但有不同的经理。

我希望能够打电话bob.company.xjane.company.x得到不同的结果,因为尽管他们为同一家公司工作,但他们有不同的经理。还有其他限制阻止我将 x 定义为员工和调用的方法bob.company_x,我意识到在这个例子中会更简单。

在我的 x 方法定义中,我有什么方法可以知道哪个员工启动了这个方法链?

0 投票
1 回答
510 浏览

java - Java 中的长方法链和重构技术

Java 程序员如何处理长方法链?有时,一两个方法的结果依赖于在多个对象上调用相同的长方法链,而将方法添加到类中只是为了处理长链的一两个本地化实例似乎有点过头了。在具有一流函数的语言中,我通常只在具有长方法链的块中定义某种一次性函数,以将一些事情分解并缩短方法链,那么在 Java 中什么是等价的?

0 投票
3 回答
5453 浏览

c++ - operator-> 是否为指针“链接”?

可能重复:
重载运算符 ->

你好,

我已经看到operator->()它在评估后被链接(重新应用),例如:

工作得很好,这需要operator->()评估三个 -Foo::operator->()Bar::operator->()常规指针解析。

但它不适用于中间的指针 - 如果Foo::operator->()返回指向 Bar 的指针而不是引用,它将无法编译。例如,同样的情况auto_ptr<auto_ptr<string>>

它是否特定于非重载operator->(),因此它只应用一次并且不会导致链接?是否可以在不使用的情况下使下面的代码工作(*ptr2)-> ...

谢谢!

0 投票
1 回答
825 浏览

method-chaining - Esper:在 EPL 查询中链接属性访问和方法调用

我目前正在努力让一些 Esper EPL 查询正常工作。查询如下所示:

当我尝试将其编译成EPLStatementviaEPAdministrator.createEPL()时,它会引发以下异常:

com.espertech.esper.client.EPStatementException:错误启动语句:无法按名称“a.center”加载类,请检查导入

如果我将事件类和查询修改为这样读取

它编译得很好。Esper 似乎解释a.center.distance(...)为一个类名后跟一个静态方法调用,而它解释a.distance(...)为对 object 的方法调用a

如何让 Esper 按预期解释我的原始查询(即作为属性访问,然后是方法调用)?

0 投票
5 回答
562 浏览

c++ - 如何确保链式日志语句是原子的?

我有一个已operator<<重载的日志记录类。所以我可以做这样的事情:

记录器可以毫无问题地做到这一点。但是,我希望在线程之间共享记录器对象。然后,我不希望它打印出这样的内容:

所以,我需要锁定整个operator<<s 链。我猜这可以用 RAII 来完成,我还没有考虑太多。与此同时,是否有任何传统的方式来完成这项工作?(除了用机械手结束输入?)

0 投票
3 回答
6670 浏览

java - 番石榴中的链接顺序

我对番石榴和它的风格有点陌生。我肯定在挖掘它,但我一直绊倒的一件事是链式方法的顺序。我似乎遇到这个问题最多的地方是使用 Compound Orderings 时。我必须不断问自己以下问题:

  • 去哪儿natural
  • nullFirst(或最后)去哪儿了?
  • 哪个nullsFirst做什么?(在下面的示例中,一个用于主机,一个用于姓氏,一个用于名字?)

这是我刚刚研究的一个例子。它看起来很麻烦,我只是不确定我是否把它们放在一起正确。我有一些 JUnit 来测试它,看起来还不错,但总是有那些古怪的边界情况。

至于一个实际的问题:这些事情如何执行是否有明确的规则?这似乎是从后到先的,但我很难说清楚。

编辑:只是想指出我试图替换的大而丑陋的代码:

0 投票
2 回答
422 浏览

c# - 将委托序列的复杂交互链接在一起

问这个问题感觉很复杂,虽然解决方案看起来很简单,但从更多代表返回的代表内部的代表令人难以置信的剪切思维导致我的大脑自爆。

不用多说,我将解释:

场景是您有翻译委托 (Func[A, B]) 和翻译行为 (Func[A, Func[Func[A, B], B]])。

这个想法是,围绕给定的翻译,您将有一组特定的行为,将调用包装到翻译中,即,他们接受 A,随意处理他们想要的,将其传递给下一个行为,同时能够更改返回值 (B)。

可能有一些 monad 可以完美地描述这一点,但也许一些代码会比任何东西都更有帮助。

受害者:

行为委托

应该将它们链接在一起的函数,并返回一个 Func 允许传入翻译函数并获得一个由行为包装的新翻译函数

使用场景

在示例代码中,行为实现不做任何事情,而是调用下一个行为,我们的翻译实现只是返回一个新的 B。

函数“链”是问题函数,能够将行为链接在一起让我望而却步,但为了向我自己证明这应该有效,我硬编码了一个幼稚的解决方案,专门将三个行为链接在一起:

这有效,但显然是;很没用。

对此的任何帮助都将非常有用,并且有关这是否是已知模式或 monad 的任何信息都将非常有趣,我认为此代码代码远非可推广。

在此先感谢斯蒂芬。

0 投票
2 回答
395 浏览

php - PHP:使用共享方法的方法链

这是我考虑了一段时间的事情。我想将一组方法链接在一起,如下面的示例所示。
方法链的概念很简单,但我想要的是让我们所有的动物都通过同一个add方法添加,那么我应该如何弄清楚我们在add方法中添加的是什么类型的动物呢?