gpt4 book ai didi

ruby - Python 与 ruby : Is y greater than x and less than z?

转载 作者:数据小太阳 更新时间:2023-10-29 07:35:33 25 4
gpt4 key购买 nike

在 Ruby 中是否有更简洁的方法来比较三个整数值?

例如,在 Python 中,以下返回 True:

x = 2
y = 3
z = 4
x < y < z

在 Ruby 中使用相同的变量绑定(bind),以下都将返回 true:

x < y && y < z
x.send(:<, y) && y.send(:<, z)

但是这个:

x < y < z

返回 NoMethodError:

NoMethodError: undefined method `<' for true:TrueClass

我推测这是因为第一次比较 x < y评估为 true并且错误是从结果 TrueClass.instance < z 引发的?在 Ruby 中有没有一种方法可以在不使用 && 的情况下比较三个整数值?

谢谢。

最佳答案

你可以写

(x+1...z).cover? y

或(我的偏好)

(x+1..z-1).cover? y

因为x, yz 都是数字,这和

(x+1..z-1).include? y

参见 Range#cover?Range#include? .

关于ruby - Python 与 ruby : Is y greater than x and less than z?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39835396/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com