标签: chaining

如何在PHP5中链接对象:$ this-> foo-> bar-> baz()

如何在PHP5类中创建链接对象?例子:

$myclass->foo->bar->baz();
$this->foo->bar->baz();
Not: $myclass->foo()->bar()->baz();
Run Code Online (Sandbox Code Playgroud)

另见:http:
//www.talkphp.com/advanced-php-programming/1163-php5-method-chaining.html

php oop class chaining

4
推荐指数
2
解决办法
3311
查看次数

Lisp链接函数宏

是否有现成的lisp宏,允许链接(管道)功能?我找不到一个.我会尝试用这个例子来解释我的意思.

而不是使用let*和许多未使用的中间变量,如下所示:

(let*
  ((var1 (f1 x y))
   (var2 (f2 x var1))
   (var3 (f1 var2 z)))
 var3)
Run Code Online (Sandbox Code Playgroud)

我想这样写:

(->
  (f1 x y)
  (f2 x _)
  (f1 _ z))
Run Code Online (Sandbox Code Playgroud)

其中,显然_将是前一个表达式的返回值.加号是否可以使用_1,_2,...来引用先前返回的值.

这是一个想法,确切的语法并不重要.

我知道这并不难写,但看起来非常有用,必须已经写好了.

lisp macros common-lisp piping chaining

4
推荐指数
2
解决办法
1341
查看次数

Ruby方法链接

我想在Ruby中链接我自己的方法.而不是像这样编写ruby方法并使用它们:

def percentage_to_i(percentage)
  percentage.chomp('%')
  percentage.to_i
end

percentage = "75%"
percentage_to_i(percentage)
=> 75
Run Code Online (Sandbox Code Playgroud)

我想像这样使用它:

percentage = "75%"
percentage.percentage_to_i
=> 75
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

ruby method-chaining chaining

4
推荐指数
1
解决办法
3409
查看次数

C++链接成员函数使用.chain().method()vers - > chained(0-> method()

问题的简短版本

我寻求建议是否使用./*这与 - >/this,即C++(*this).chained().methods()与this-> chained() - > methods().

顺便说一句,目前我见过的大多数页面都推荐[[C++(*this).chained().methods()]].

我只是想知道,因为你做不到

My_Class object.chained().methods();

(顺便说一句,我没有在第一部分中测试过这些例子.我在第二部分提供了测试的例子.)

你必须这样做

My_Class对象;
object.chained()方法();

这是一个恼人的额外线

或者你可以做到

 My_Class object = My_Class().object.chained().methods();
Run Code Online (Sandbox Code Playgroud)

这需要一个值复制 - 如果构造函数有副作用,这是不可接受的,比如注册对象实例 - 就像许多Knobs库一样

或者你可以做到

 My_Class* object_ptr = *(new My_Class).object.chained().methods();
Run Code Online (Sandbox Code Playgroud)

哪个有效,但需要烦人的*(ptr)

或者你可以做到

 My_Class* object_ptr = (new My_Class)->object.chained()->methods();
Run Code Online (Sandbox Code Playgroud)

这是一个更好的青少年.

我想你可以做到

My_Class&object_ref(My_Class().chained().methods());

而且我不确定我对此的看法.

顺便说一句,我不需要调试帮助.
我一直在编写这样的东西我只是为了清楚起见我提供的例子.

我正在寻求样式建议,因为有几种方法可以对它进行编码,而且我使用了不同的库来以相反的方式进行编码.

混合它们很难看:

  My_Object_with_Setters* object_ptr2 = &((new My_Object_with_Setters)->set_R1(1).set_P1(2)->set_R1(3))

 My_Object().method_returning_ptr()->method_returning_ref();
Run Code Online (Sandbox Code Playgroud)

也许它不是那么糟糕......但它肯定会令人困惑.

当我遇到使用混合.chained() - > methods()的两个不同库的代码时,我有时希望能够使用postfix地址和解除引用运算符

My_Object*mptr = My_Object().somethod_returning_ptr() - > method_returning_ref - >&

更完整的例子

二传函数

我经常使用这个习惯用于setter函数

class My_Object_with_Setters {
public:
  static int count;
  int value;
public: …
Run Code Online (Sandbox Code Playgroud)

c++ this method-chaining chaining

4
推荐指数
1
解决办法
3096
查看次数

如何在JQuery中的同一元素上链接多个单击事件?

我想在一次单击元素时触发事件,然后在第二次单击同一元素时触发另一个事件.我在下面附上了一个演示链接.问题是事件被链接,因此只需单击一次即可运行到最后一个事件,而无需等待第二次单击.如果这是重复,我很抱歉,但我在这个板上找不到相同的问题.

我可能没有把这个问题措辞得很好,我相信我会为此遇到麻烦......

$(function(){
l $('.box')
      .click(function() {
        $(this).removeClass('red'
                        ).addClass('black');
      })
      .click(function() {
        $(this).removeClass('black'
                        ).addClass('blue');
      });
});`
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/MEFNG/1/

jquery chaining

4
推荐指数
1
解决办法
9962
查看次数

Underscore.js _.tap()函数什么是方法链?

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) ->,这也是"点击"对象文字的方法链吗?

javascript method-chaining chaining underscore.js

4
推荐指数
2
解决办法
6894
查看次数

AngularJS:如何压扁这个Promise链?

我有以下代码:

someService.fnReturnsPromise()
    .then(function () {
        return someService.fnReturnsAnotherPromise(someArg);
    })
    .then(function (resultsOfSecondFn) {
        // do stuff with results
    });
Run Code Online (Sandbox Code Playgroud)

我觉得这应该有效; 然而,resultsOfSecondFn实际上并不是结果,而是我回来的承诺本身.为了让它按照我想要的方式工作,我必须这样做:

someService.fnReturnsPromise()
    .then(function () {
        return someService.fnReturnsAnotherPromise(someArg);
    })
    .then(function (promiseReturn) {
        promiseReturn.then(function (results) {
            // do stuff with results
        });
    });
Run Code Online (Sandbox Code Playgroud)

这是伪代码fnReturnsAnotherPromise:

someService.fnReturnsAnotherPromise = function (arg1) {
    return anotherService.anotherFnThatReturnsPromise(arg1);
};
Run Code Online (Sandbox Code Playgroud)

所以真的,它只是一个额外的层,但承诺是以任何一种方式返回.代码anotherFnThatReturnsPromise是一些简单的范例$q.defer(),return dfd.promise有些resolve()是s.

javascript chaining promise angularjs angular-promise

4
推荐指数
1
解决办法
3500
查看次数

了解JavaScript中的方法链接

我是ES6和Java语言的新手,在下面的代码中,我无法弄清楚将此dump()方法链接到哪里出了什么问题。

它返回“ main.js:25 Uncaught TypeError:无法读取未定义的属性'dump' ”:

class TaskCollection {

constructor(tasks = []) {
    this.tasks = tasks;
}

addTasks(newTasks = []) {
    this.tasks = this.tasks.concat(newTasks);
}

dump() {
    console.log(this.tasks);
}

}

let myTasks = new TaskCollection([
        'Do stuff'
]);

myTasks.addTasks([
    'New Task'
]).dump();
Run Code Online (Sandbox Code Playgroud)

现在,如果我不链接那个dump()方法,一切都会很好。

myTasks.addTasks([
'New Task'
]);

myTasks.dump();
Run Code Online (Sandbox Code Playgroud)

javascript chaining

4
推荐指数
1
解决办法
61
查看次数

c#将方法限制为其他方法

我有一个包含几种方法的类,例如:

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)

c# method-chaining chaining

4
推荐指数
1
解决办法
606
查看次数

链接和功能组合

这是我想要了解的一段代码:

const seq2 = (f1, f2) => {
 return (...args) => {

  return f2( f1( ...args) );
 }
}



const seq = ( f1, ...fRest) =>
 fRest.reduce( seq2, f1 );

const elevator = {
 floor: 5
};

const up = elevator => {
 return {
  floor: elevator.floor + 1
 }
};

const down = elevator => {
 return {
  floor: elevator.floor - 1
 }
};


const move = seq( up, up, down, up);
const newElevator = move( elevator );



console.log( …
Run Code Online (Sandbox Code Playgroud)

javascript functional-programming chaining function-composition

4
推荐指数
1
解决办法
121
查看次数