如何在ruby中编写一个具有我可以调用的过程的类,如下所示:
a = MyObj.new()
b = MyObj.new()
c = a * b
d = a / b
e = a - b
Run Code Online (Sandbox Code Playgroud)
这比以下更好:
c = a.multiply(b)
...
Run Code Online (Sandbox Code Playgroud)
谢谢
class Foo
attr_accessor :value
def initialize( v )
self.value = v
end
def *(other)
self.class.new(value*other.value)
end
end
a = Foo.new(6)
#=> #<Foo:0x29c9920 @value=6>
b = Foo.new(7)
#=> #<Foo:0x29c9900 @value=7>
c = a*b
#=> #<Foo:0x29c98e0 @value=42>
Run Code Online (Sandbox Code Playgroud)
您可以在此处找到可以定义为方法的运算符列表:http :
//phrogz.net/ProgrammingRuby/language.html#operatorexpressions
你已经得到了关于如何定义二元运算符的答案,所以就像这里的小附录-一样,你可以如何定义一元(如负数).
> class String
.. def -@
.. self.swapcase
.. end
.. end #=> nil
>> -"foo" #=> "FOO"
>> -"FOO" #=> "foo"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5843 次 |
| 最近记录: |