加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – 比较实例变量的相等性

发布时间:2020-12-17 01:47:18 所属栏目:百科 来源:网络整理
导读:我是 Ruby的新手. class X attr_accessor :minX,:maxX,:minY,:maxY def initialize @minX = 0,@maxX = 4,@minY = 0,@maxY = 4 if @minX == @minY @maxX == @maxY # do stuff else # not square end endend 这总是进入else子句 – 为什么? 解决方法 我认为它
我是 Ruby的新手.

class X
  attr_accessor :minX,:maxX,:minY,:maxY

  def initialize
    @minX = 0,@maxX = 4,@minY = 0,@maxY = 4

    if @minX == @minY && @maxX == @maxY
        # do stuff
    else
        # not square
    end
  end
end

这总是进入else子句 – 为什么?

解决方法

我认为它与你定义实例变量的方式有关,你最终会得到它

@maxX=4
@minY=0
@maxY=4
@minX=[0,4,4]

所以它永远是假的.如果你真的想把它们放在一行,你可以做(??或遵循Doug R解决方案)

@minX = 0; @maxX = 4; @minY = 0; @maxY = 4

否则,您可以将它们中的每一个放在一个单独的行中

这与Rubys多项任务有关,其中:

foo,bar = [1,2]  # foo = 1; bar = 2
foo,bar = 1,2    # foo = 1; bar = 2
foo,bar = 1       # foo = 1; bar = nil

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读