想实现这样的事情:是否有可能在数学中像终点符号一样在ruby中覆盖括号运算符?
arr = (1..10)
arr[2,5] = [2,3,4,5]
arr(2,5] = [3,4,5]
arr[2,5) = [2,3,4]
arr(2,5) = [3,4]
好了,我们需要覆盖4个支架opreators:[],[)(],()
任何想法
这就是所谓的“包括或排除”在数学。https://en.wikipedia.org/wiki/Interval_(mathematics)#Including_or_excluding_endpoints
尽管链接很有用,但您应该花时间将这些信息包含在您的问题中 - 这并不难解释。还要覆盖它首先必须存在的方法。只有数组[[]存在,另外三个'(]','[''''和'()'必须被创建。更不用说执行语法糖。 –
不,您提出的语法并不能让Ruby解析器理解。 –