有没有#between?对于水晶中的数字?

问题描述 投票:5回答:2

我想知道我是否根本找不到水晶中数字的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-lang
2个回答
11
投票

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


0
投票

从删除的答案,但我仍然喜欢它:

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

© www.soinside.com 2019 - 2024. All rights reserved.