编写始终返回 R 和 C++ 中"1"值的函数

Writing a function that always returns the value "1" in R and in C++

本文关键字:函数 C++ 返回      更新时间:2023-10-16

我希望制作一个非常简单的功能,没有参数,总是总是分别在R和C 中返回整数1。

r:

 oneR <- function() 1L 

但是当我写" Oner"时,控制台返回function() 1L而不是1

即使我编写oneR(3)(或其他数字(,我也没有得到1,但错误说Error in oneR(10) : unused argument (10)

C 等级是

cppFunction('
int oneCpp() { # C++ function
return 1;
}')

我的问题只是R函数。

问题在于您调用该功能的方式。oneR <- function() 1L意味着0参数。因此,oneR(10)将返回错误,因为给出了一个参数,但在函数体中没有指定。

oneR()将正确返回您的值。

如果您希望它不返回警告,请简单地扩展函数

oneR <- function(...) 1L 

无论您投入什么功能,它现在都会返回1并忽略所有参数。

oneR(10, C = 20, 30) 
[1] 1

请注意,1L将返回1作为整数,而1将返回双精度浮点。