R 代码忽略了 nargs() if 语句

R Code ignored nargs() if statement

无法弄清楚为什么 R 在以下

中忽略了 nargs()
foo <- function(x=NULL) {

  if (nargs() > 1){
    stop("Enter 1 argument only")
  }
  cat("call was ", deparse(match.call()), "\n", sep = "")
}

当我执行 foo("a","b") 时,我得到 Error in foo("a", "b") : unused argument ("b") 而不是 Enter 1 argument only

请指教

对于多个参数,我们可以使用三个点 (...),条件 nargs 将对其进行评估

foo <- function(...) {

 if (nargs() > 1){
  stop("Enter 1 argument only")
 }
  cat("call was ", deparse(match.call()), "\n", sep = "")
 }

foo("a", "b")

Error in foo("a", "b") : Enter 1 argument only

foo("a")
#call was foo("a")