我是靠谱客的博主 谦让悟空,最近开发中收集的这篇文章主要介绍Ruby 中定义类的常用运算符方法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

其中一元运算符包括 +、-、~、!(!是 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 中定义类的常用运算符方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部