ruby 切换布尔变量的最佳方式是什么?

8ftvxx2r  于 2023-06-22  发布在  Ruby
关注(0)|答案(2)|浏览(144)

truefalse之间切换变量的最佳方法是什么?一个明显的方法是初始化一个变量foo

foo = false

并做到:

foo = foo.!

每次我想切换的时候但是当变量名很长时,这就变得冗长了。有没有更简单的方法来做到这一点(通过使用任何东西,如语法糖,原始类)?特别是,我想知道是否有一种方法可以通过给它一个单一的方法来切换:

foo.some_method
i7uaboj4

i7uaboj41#

可以使用XOR运算符。

foo ^= true
foo = false
foo ^= true # => true
foo ^= true # => false
u4vypkhs

u4vypkhs2#

module Fickle
  refine TrueClass do
    def toggle!
      false
    end
  end

  refine FalseClass do
    def toggle!
      true
    end
  end
end

using Fickle

a = true.toggle!
puts a # Output: false

b = false.toggle!
puts b # Output: true

相关问题