我有个问题。例如:
StringBuilder sb = new StringBuilder();
sb.append("Teacher,");
String s = sb.append(" Good").append("Morning!").toString();
Run Code Online (Sandbox Code Playgroud)
现在,在最后一行中,我创建了两个附加方法的链。我知道每个方法追加方法都会返回内存中字符串的地址(我是对的?对吧?)。所以在第一个中它附加到指向的sb.append地址。sb第一个sb.append在运行时首先执行,但是接下来会发生什么.append?接下来.append是使用第一个追加方法返回的地址还是我错了?这就是我的意思:
第一个追加 ->sb.append(" Good");
第二个追加returnedAddr.append("Morning!");
是这样工作的吗?
仍然在PHP-OOP训练轮上,这个问题可能属于failblog.org.=)
PHP中方法链的好处是什么?
我不确定这是否重要,但我将静态地调用我的方法.例如
$foo = Bar::get('sysop')->set('admin')->render();
Run Code Online (Sandbox Code Playgroud)
根据我的阅读,任何返回的方法$this都允许链接.我刚学会了这是PHP5中的新功能.在我看来,如果我不必实例化一个全新的对象(静态调用它)并且只需从类中选择我需要的几个方法,那么可能会有速度优势?
我有这个权利吗?
在值对象上使用方法链接模式是否可接受/良好实践(比如,返回一个新对象而不是这个)?是否存在实施此解决方案的案例?
我想不出任何弊端,但我想听听你的观点.
我对JavaScript/jQuery有些新意,但是当我看到方法链接的例子时,它立刻让我感到很熟悉.像LINQ其它接口做同样的事情,其中一组方法的返回类型是一样的,因为他们所操作的类型(TweetSharp确实非常类似的东西).这是流畅编程的一个例子吗?我读到的关于jQuery的大部分内容都说其他库已经"借用"了这种方法链接的想法 - 这个想法是否源于jQuery?
Underscore.js文档解释了该_.tap()功能"点击"到方法链中.http://underscorejs.org/#tap
我跟随他们的例子有困难:
_.chain([1,2,3,200])
.filter(function(num) { return num % 2 == 0; })
.tap(alert)
.map(function(num) { return num * num })
.value();
=> // [2, 200] (alerted)
=> [4, 40000]
Run Code Online (Sandbox Code Playgroud)
在这种情况下,方法链是什么?我一直认为方法链是链接方法的概念:object.foo().bar().baz().
我已经看过使用这种方法的例子:module.exports = _.tap {}, (connectors) ->,这也是"点击"对象文字的方法链吗?
我目前正在尝试理解ActiveRecord如何工作以链接条件方法然后执行sql请求.
理解方法链接非常简单,我想到的一切都很好地解释并在这里重新开始.
但是,我仍然无法弄清楚,上面的文章没有解释:ActiveRecord如何知道何时执行SQL请求.
例如,如果我编写代码User.where(some_column: "hello").limit(5),ActiveRecord将实例化查询构建器,请设置有关some_column值和有限数量结果的条件.
但是,在执行之后 .limit(5),它还会执行请求并返回结果:ActiveRecord如何知道?怎么知道它是最终的条件方法,它需要返回一个结果?它是否在每个链接条件下执行SQL请求?
在我上面发布的文章中,作者通过调用最终方法来进行欺骗,该方法each正在执行请求并返回结果.
ruby activerecord ruby-on-rails method-chaining ruby-on-rails-4
让我们假设我们有一个AnObject实例数组,需要执行以下一系列操作:
并且我们只想在执行所有这些步骤后(或者出现错误)才接收信号.通过RxSwift实现这一目标的正确方法是什么?它实际上可行吗?
请在下面找到我的原型功能.不幸的是我没有提供有效的链接代码示例,所以没有什么可以演示的.
func makeAPIRequest(object: AnObject) -> Observable<Void> {
...
}
func storeData(data: [AnObject]) -> Observable<Void> {
...
}
func additionalProcessing(object: AnObject) -> Observable<Void> {
...
}
func submitData()
{
let data: [AnObject] = ...;
let apiOperations = data.map{ makeAPIRequest($0) };
let storageOperation = storeData(data);
let processingOperations = data.map{ additionalProcessing($0) };
... // some code to chain steps 1-3
.subscribe { (event) -> Void in
// should be called when operations from step …Run Code Online (Sandbox Code Playgroud) 我想知道如何使用链接在jquery中编写代码?
var table = document.getElementById("deliver_alt_table");
var rows = table.getElementsByTagName("tr");
$(rows[0].children[1]).css('visibility', 'hidden');
Run Code Online (Sandbox Code Playgroud)
这段代码有效 - 但是如何使用一行在jquery中编写?
我有一个包含几种方法的类,例如:
class mySqlTool{
private string _values, _table, _condition, _result;
public mySqlTool Select(string values = null){
//this is REQUIRED
_values = string.Format("select {0} ", values);
return this;
}
public mySqlTool Update(string table){
//this is REQUIRED
_table = table;
return this;
}
public mySqlTool Set(string name, String value){
//this is REQUIRED
//handle name and value
return this;
}
public mySqlTool From(string table = null){
//this is REQUIRED
_table = table;
return this;
}
public mySqlTool Where(string condition = null){
//this is OPTIONAL …Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的子类“ setBall”内实现方法链接
class Ball {
constructor(name, size, power) {
this.name = name;
this.size = size;
this.power = power;
}
}
let Ball1 = new Ball('Bomb',5,2);
console.log(Ball1);
class setBall extends Ball{
constructor(name, size, power) {
super(name, size, power);
}
setBall.setName(name) {
this.name = name;
}
setBall.setSize(size) {
this.size = size;
}
setBall.setPower(power) {
this.power = power;
}
get getthrowSpeed() {
return this.size + this.power;
}
}
let Ball2 = new setBall('Big',3,7);
console.log(Ball2);
Run Code Online (Sandbox Code Playgroud)
在控制台中对其进行测试时,我收到的错误是:Uncaught SyntaxError:意外令牌。
如果在它们之间也添加.prototype,则会发生相同的错误。该方法无需“ setBall”即可工作 …
method-chaining ×10
chaining ×3
javascript ×3
jquery ×2
activerecord ×1
c# ×1
java ×1
oop ×1
php ×1
ruby ×1
rx-swift ×1
swift ×1