为什么Ruby的Pessimistic Operator被命名为pessimistic?

Why Ruby's Pessimistic Operator is named pessimistic?

我在Rails开始学习Ruby,发现

~>

在 Gemfile 中。我发现

'~> 3.0.3'

表示>= 3.03< 3.1

但是有人知道为什么这个操作符被命名为 Pessimistic 吗?悲观是情绪词,我不悲观用这个。

那是因为有一种乐观的方式来指定它:

'>= 2.2.2'

这意味着大于 2.2.2,甚至 7.0。现在这可能太乐观了,因为通常情况下,7.0 可能已经与您现有的代码不兼容——我们只想说 "give me the version that is supposedly backward compatible",它是

'~> 2.2'

这意味着,'>= 2.2'< 3.0,意味着 2.8.123 仍然可以,但不是 3.0 或更高版本,因为 3.0 应该有主要更新并且可能不向后兼容您的代码。所以你有点悲观,因此得名 "pessimistic operator".

参考:Pessimistic version constraint, Semantic Versioning.