为什么!!x,x取0时值不等于x,取1时就等于x
(1234567890凑字数)
3条回答 默认 最新
jk_101 2023-09-18 09:00关注在很多编程语言中,!!x 不会返回 x 的原因是因为双感叹号 !! 可以用来将一个值强制转换为布尔类型,并消除类型的不确定性。具体来说,它执行以下两个步骤:
第一个感叹号 ! 将 x 转换为布尔值。在大多数编程语言中,0 被视为假(false),而非零值被视为真(true)。
第二个感叹号 ! 取反前面的布尔值。这个操作会将 true 转换为 false,将 false 转换为 true。
所以,无论 x 的值是什么,!!x 的结果都会是布尔值 true 或 false,而不是原始的 x 的值。
这种操作通常用于确保一个值是布尔类型,并消除可能的类型不一致性。例如,在某些情况下,你可能需要确保一个变量是布尔类型,以便进行逻辑运算或条件判断。使用 !! 可以将任何值强制转换为布尔类型。
如果你想要的是将 x 的值保留下来,而不是将其转换为布尔类型,你应该直接使用 x,而不是 !!x。
本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报解决 1无用