📜  !! (1)

📅  最后修改于: 2023-12-03 14:58:57.421000             🧑  作者: Mango

!!主题:一个程序员的感叹!

你是否曾经在代码中看到双感叹号“!!”?它不仅仅是两个叹号,它还有着神奇的威力。

在Ruby中,如果一个变量前面加上两个感叹号,它会强制转化为布尔类型。比如:

!!nil   # => false
!!true  # => true
!!false # => false

在JavaScript中,双感叹号可以将某些值转化为它们的等效布尔值,如下所示:

!!"hello"     // true
!!""          // false
!!1           // true
!!0           // false
!!null        // false
!!undefined  // false

在Python中,当你用双感叹号对一个值进行转化时,它会直接返回该值本身。如下所示:

!!True   # => True
!!False  # => False
!!1      # => 1
!!None   # => None

那么,为什么双感叹号能够有这样神奇的威力呢?这是因为它是一种类型转化的很好的简写方式。

换句话说,如果你想将变量x转化为bool类型,你可以写成这样:

bool(x)

或者你可以用双感叹号的简写方式:

!!x

但要注意,只有少数语言支持这种类型转换简写方式。

总之,双感叹号可以让我们更加方便地进行类型转换。不过,在进行类型转换时,请仔细考虑之后的代码逻辑,以确保不会出现意料之外的错误。