热门问题
时间线
聊天
视角

方法链式调用

来自维基百科,自由的百科全书

Remove ads

方法链式调用(Method chaining),也称为命名参数惯用法(named parameter idiom)或者方法链,是面向对象编程语言中多个方法被调用时的常用语法。每个方法都返回一个对象,允许在单个语句中将调用链接在一起,而无需变量来存储中间结果。[1]方法链式调用是一种语法糖[2]

类似的语法是方法级联调用,即调用一个对象的多个方法的语法糖。方法级联调用可以使用方法链式调用来实现,即让每个方法返回当前对象本身英语this (computer programming)(this)。方法级联调用是流畅接口的一项关键技术,面向对象语言广泛实现了方法链式调用,但实现了方法级联调用的不多。链式和级联调用都来自 Smalltalk语言

虽然方法链式调用是语法,但它具有语义后果,即需要方法返回一个对象;如果通过方法链式调用实现级联,这必须是当前对象本身英语this (computer programming)。 这可以防止返回值被用于其他目的,例如返回错误值英语error value

Remove ads

例子

一个常见例子是C++标准模板库中的iostream,其中运算符<<返回左参数对象,因此允许链式调用:

比较:

a << b << c;

等价于:

a << b;
a << c;

另一个例子是JavaScript使用内建的数组方法:

somethings
  .filter(x => x.count > 10)
  .sort((a, b) => a.count - b.count)
  .map(x => x.name)

参见

参考文献

外部链接

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads