谓词函数和谓词函数对象_称为形容词的函数

谓词函数和谓词函数对象

我这周要矮一些。 部分原因是因为在决定报废之前,我正在阅读一篇文章。 部分原因是因为本周我写了一些星期三的摘要。 最后,这是因为我认为我无法将这篇文章扩展得那么大。 :)

命名功能

通常,人们被告知将方法和功能命名为动词。 如果它不是动词,则它是一个名词,因此是一个宾语(假设它是一种面向对象的语言)。 在大多数情况下,这是正确的,并且,如果您不确定是使用简单的动词形式还是我将要提及的形式,则应使用动词形式以确保安全。

过去时动词/形容词形式

使我成为这种命名约定的原因是Python的reversed函数。 您可能会说它已经是一个动词,但是我有两句话要说:

  1. 通常,以动词形式命名您的函数时,它们是“命令”形式。 (即runfilterprint )。 他们不是过去时。
  2. 实际上不是动词。 这个词通常被用作过去时动词,被用作形容词。 这是英文。 在这里一切皆有可能:)

如果它可以帮助您将其视为过去时动词形式而不是形容词,那很好,因为它实际上仅适用于无论如何都用作过去时动词的形容词(到目前为止,我已经发现了)。

何时使用此表格

用于命名函数和方法的形容词形式并不打算经常使用。 它有特定的用途。 对于函数和方法来说,它意味着接受一个对象( this相当于为方法接受一个对象)或多个相同类型的对象,并返回一个相同类型的新对象(或者可能是相似的对象,例如子类)。

例如,Python中的reversed函数采用一个序列,并以反向顺序返回迭代器。 另一个例子是Python的sorted 。 有关方法的示例,您可以查看我的Weighted类上的combinedWithWeighted持有一个对象和一个整数(或权重),并且当两个Weighted对象包含同一个对象并存在于同一“位置”时,该对象的重复项就没有意义(即,同一张脸的两个具有不同的权重)在我的骰子滚子库中死亡,其中权重表示在骰子上有多少张面Kong。) combinedWith方法接收两个Weighted对象( this对象以及传入的任何对象),并返回一个新的Weighted对象,该对象由前两个对象的权重等于前两个对象的权重之和。

它返回一个新对象的事实是一种关键。 如果Weighted类仅将对象转换到适当位置,则该函数应命名为combineWith 。 当寻找object1.combinedWith(object2)它是描述运行方法,但是阅读的结果短语object1.combineWith(object2)给人的印象是告诉object1将自身与结合object2 。 第一个作为对object1的就地更新没有任何意义。 如果它是函数而不是方法,那么我将使用combined(object1, object2)combine工作还可以,但IMO却不尽人意。

奥托罗

就是这样 但是请记住,这几乎适用于所有语言。 Weighted类实际上是Java类-尽管我正在编写该库的Python版本,同时有机会尝试配对编程并教我的兄弟Python。

我最终的写作超出了我的预期,但是仍然比平时少。

翻译自: https://www.javacodegeeks.com/2015/05/functions-named-as-adjectives.html

谓词函数和谓词函数对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值