概述
其中一元运算符包括 +、-、~、!(!是 ruby 内置的一元运算符方法,无法自定义,不过所有对象都可以直接调用),二元运算符包括 +、-、*、/ 等,还包括下标方法。
class Point
attr_accessor :x, :y
def initialize(x=0, y=0)
@x, @y = x, y
end
def inspect
"(#{x}, #{y})"
end
def +(other)
self. class.new(x + other.x, y + other.y)
end
def -(other)
self. class.new(x - other.x, y - other.y)
end
def +@
self. class.new(x, y)
end
def -@
self. class.new(-x, -y)
end
def ~@
self .class.new(-y, x)
end
def [](index)
case index
when 0
x
when 1
y
else
raise ArgumentError, "out of range '#{index}'"
end
end
def []=(index, value)
case index
when 0
self.x = value
when 1
self.y = value
else
raise ArgumentError, "out of range '#{index}'"
end
end
end
point0 = Point.new(3, 6)
point1 = Point.new(1, 8)
p point0
p point1
p point0 + point1
p point0 - point1
p +point1
p -point1
p ~point1
p !point1
p point0[0]
point0[1] = 7
p point0[1]
p point0[2]
(3, 6)
(1, 8)
(4, 14)
(2, -2)
(1, 8)
(-1, -8)
(-8, 1)
false
3
7
E:/Project/test/test.rb:39:in `[]': out of range '2' (ArgumentError)
from E:/Project/test/test.rb:69:in `<main>'
最后
以上就是谦让悟空为你收集整理的Ruby 中定义类的常用运算符方法的全部内容,希望文章能够帮你解决Ruby 中定义类的常用运算符方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复