布尔结果显示为FALSE,应返回TRUE

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了布尔结果显示为FALSE,应返回TRUE相关的知识,希望对你有一定的参考价值。

如果[list1$b]存在,那么布尔值如何变为FALSE?请参阅以下代码中的步骤4。由于值FALSE,if语句将不会被执行。

其他观察:我还注意到,在第二次运行总脚本时,脚本声明list1中缺少'a'。添加',即使[list1 $ a]确实存在。

想要的行为/结果:如果[list1$b]存在设置boolean到TRUE并运行if statement。此外,在第二轮总脚本中,[list1 $ a]应该检测到[list1 $ a]存在。

##########
# Step-1 #
##########
# Create list [list1] if missing.
if (!exists('list1')) {
  list1 <- list()
}

##########
# Step-2 #
##########
# Add variable [b] in list [list1].
list1$b <- 1

##########
# Step-3 #
##########
# Create variable [a] in list [list1] if missing.
if (!'a' %in% list1)  {
  print ('a is missing in list1. Adding a')
  list1$a <- 2
}

##########
# Step-4 #
##########
# Execute only print, if variable [b] in list [list1] exists. 
# Note! Even though variable [b] in list [list1] exists, the boolean result is FALSE.
if ('b' %in% list1)  {
  print ('b exists in list1. Do nothing')
}

# Print-out boolean result of Step-4:
boolean.result.of.step.four <- ('b' %in% list1)
print (paste0('Boolean result of step-4: ', boolean.result.of.step.four))
答案

'b'list1中物体的名称。 %in%匹配值向量中的值。

如果你创建list1作为包含值'b'的列表,你的条件将是TRUE。看到:

list1 <- list('b')
> 'b' %in% test1
[1] TRUE

在你的情况下,你可以匹配'b'与矢量names(list1)。因此,在你的'b' %in% names(list1)条件下使用if来使它工作。

以上是关于布尔结果显示为FALSE,应返回TRUE的主要内容,如果未能解决你的问题,请参考以下文章

js的真值与假值

布尔值不能更改

成功执行所有删除操作时返回布尔值 (true | false)

具有布尔返回类型的飞镖未来方法总是返回 false

javascript基础:逻辑运算符

2021-06-03:布尔运算。给定一个布尔表达式和一个期望的布尔结果 result,布尔表达式由 0 (false)1 (true)& (AND) | (OR) 和 ^ (XOR) 符(代码