Ruby语法中的^是什么?(以Shop脚本为例)

m3eecexj  于 2022-11-29  发布在  Ruby
关注(0)|答案(1)|浏览(105)

我正在解码一个由另一个开发人员编写的用于购物车折扣的脚本,它包含了一些我以前没有见过的Ruby语法。在谷歌上搜索一下,我没有发现下面代码中使用“^”的原因,特别是在这些行中:

return @invert ^ ((@tags & customer_tags).length > 0)
return @invert ^ ((@tags & customer_tags).length > 0)

请参阅以下内容:

class CustomerTagQualifier < Qualifier
    def initialize(match_type, match_condition, tags)
      @match_condition = match_condition
      @invert = match_type == :does_not
      @tags = tags.map(&:downcase)
    end
  
    def match?(cart, selector = nil)
      return true if cart.customer.nil? && @invert
      return false if cart.customer.nil?
      customer_tags = cart.customer.tags.to_a.map(&:downcase)
      case @match_condition
        when :match
          return @invert ^ ((@tags & customer_tags).length > 0)
        else
          return @invert ^ partial_match(@match_condition, customer_tags, @tags)
      end
    end
  end

有人有什么想法吗?谢谢你的意见

相关问题