首页 > 解决方案 > 检查函数参数的值是否与指定的可能性匹配的最佳方法是什么?

问题描述

假设我有一个非常简单的函数,它检查 an 的值并根据它是否匹配多种可能性之一而表现不同。这是一个最小的例子:

is_duck <- function(x) {
  if (x == 'duck') return("QUACK")
  else return("That's not a duck!")
}

只要我按照我传递的函数行事,这就足够了。但是 R 是动态类型的,所以它是一片无法无天的土地。我 x == DUCK成为一个长度为 1 的逻辑向量,我可以将它放入我的分支逻辑中,但我不能保证它会是。有没有更好、更安全的方法来完成我想要的行为?

我想过,if(identical(x, 'duck'))但如果 x 有一些额外的属性,这会失败,这有点具体了(即,x <- set_names('duck')会返回“那不是鸭子!”即使它是)。是isTRUE(x == 'duck')我要找的吗?

标签: rtype-safetydynamic-typing

解决方案


推荐阅读