如何为 enquos 类型的 quosures 测试 null 或 missing

How to test null or missing for enquos-type quosures

在 rlang 中有一个非常微妙(并且非常令人困惑)的区别,即...quosures 不是 quosure 对象!换句话说:

等价于 quo_is_null()quo_is_missing() 的等价物是什么?特别是,我想测试 enquos(...) 捕获的 ... 参数是 null/missing,我该怎么做?

library(rlang)
fo1 <- function(df, var1) {
  dot_vars <- rlang::enquo(var1)
  quo_is_missing(dot_vars)
}

fo2 <- function(df, ...) {
  dot_vars <- rlang::enquos(...)
  quo_is_missing(dot_vars)
}

fo1()
#> [1] TRUE
fo2()
#> `quo` must be a quosure

length(dot_vars)判断是否长度为0