我注意到微软在 .NET 4 中以一种奇怪的方式命名了他们的代码合同相关函数。
他们在“require”和“ensure”的末尾添加“s”,所以有Contract.Requires()和Contract.Ensures(),但没有在“assert”和“assume”的末尾,所以有Contract .Assert() 和 Contract.Assume()。这种差异让我有点困惑。
事实上,我真正的问题是,我正在尝试在 PHP 中使用代码合同,所以我写了一些东西来模仿 .NET 4 中的“合同”类。由于 PHP 没有内置方法来验证参数的类型,我在自己的 Contract 类中添加了一个方法来进行一些验证。我选择“expect”这个词,因为我认为“expect parameter 'bar' to be string but...”是参数类型错误时的常见消息。问题来了。我应该将我的方法命名为 Contract.Expect() 还是应该命名为 Contract.Expects()?
我来自一个非英语国家,很抱歉我的英语不好。可能它实际上是一个英语问题,但我认为只有程序员才能帮助我。很抱歉,如果这个问题在这里不合适。