本帖最后由 shitake 于 2016-4-15 22:46 编辑 @taroxd 就我个人的理解来看,应该是 .& 或者直接写 &。而 &. 应该是个不怎么正确的写法。 . 在ruby里通常表示方法的调用,写作.& 是和 .+ 这样差不多的写法【ruby里实际上是不存在运算符的,所有的运算符本质上都应该是以特殊符号为方法名的拟态方法】 那么 &. 这样的写法怎么来的呢,举个例子:
不过这也不一定说明我是对的,应为在cruby 2.3.0 的环境下,我尝试写 a.&.each{ |i| p i } 会报错。囧 另外,通过调用 methods 方法,发现在常用的类里面,只有 String、Numerc、Array、NilClass、TrueClass、FalseClass、MatchData 这几个类的实例里有 .& 这个方法。 恩,我去查了下最先看到这个的出处 然后发现除了这里,其他提到孤寂运算符的地方都是写做 &. 貌似是这篇翻译的问题(其他语言的版本里也是 &. 囧) 另外看这篇 Matz 开始也是考虑过 .& 这样的,貌似还纠结过使用 ? 还是 & 。 |
在给一个很容易懂的解释。 虽然是内定好的class但是也是可以报错的。 提个简单的例子把,比如调用这个类的时候需要传入数字的参数进去才能正常运行。 但是你给他传入了非数字类型进去肯定会报错的啊。 |
本帖最后由 cinderelmini 于 2016-4-15 15:08 编辑 不是方法没定义,然后运算方法是定义给特定对象(数字,数组,字符什么的)的, 然后弹这个未定义运算符号方法的问题就是前面要运算的变量并不是能运算的对象, 所以会有这种问题…… 举个栗子的话…… 乃可以跟一个人说人类的语言,然后对面能懂, 但是也可以跟一只喵说人类的语言,然而它不懂…… 人类的语言是已经定义了的方法,但是对象不一样。 |
本帖最后由 喵呜喵5 于 2016-4-15 14:06 编辑 道理其实很简单: 你问电脑 一张白纸 + 数字1 等于多少,电脑说不知道,你可以理解 为什么你问电脑 一个不是数字的东西 + 一个数字 等于多少,电脑说不知道,你却很奇怪呢? |
站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作
GMT+8, 2025-2-22 15:23
Powered by Discuz! X3.1
© 2001-2013 Comsenz Inc.