两者之间有#吗?Crystal中的数字



我想知道是否在Crystal中找不到一个between方法来处理数字。

在Ruby中,有一种Comparable#between?方法,它可以(以及其他方法(比较两个数值(我的具体情况(。

背景:我想在不使用的情况下实现非中间解决方案

variable < 2 || variable > 5

我尝试了5.between(2,5)5.between?(2,5),但得到的只是一个编译错误:

第1行出现错误:未定义的方法"介于?"对于Int32

我最终扩展了数字结构:

struct Number
def between?(a, b)
self <=> a >= 0 && self <=> b <= 0
end
end

问题2:我的上述解决方案可行吗?如果没有,欢迎提出建议。

在crystal中,您可以编写2 <= variable <= 5,它更易于阅读,并使您能够更好地控制范围两端的包容性/排他性。

来自一个已删除的答案,但我仍然喜欢它:

您可以使用类似的方法Range#includes?(或#covers(。

相关内容

  • 没有找到相关文章

最新更新