试图理解为什么 rownames = FALSE 没有从 Test 传递到 Test.list?
Test = function( object , rownames = FALSE , ... )
{
UseMethod( "Test" )
}
Test.list = function( object , rownames , ... )
{
browser()
# rownames is missing!
}
Test( list() )
最佳答案
只有实际参数传递给方法。每个 S3 方法都可以有自己不同的默认值(虽然这将是一个非常糟糕的设计)。
您应该努力使参数与泛型函数具有相同的默认值,最后可能还有一些额外的参数。
# Bad design, but possible to have defaults be different...
Test.list = function( object , rownames = TRUE , ... )
{
browser()
# rownames is TRUE!
}
Test( list() )
关于r - 为什么不使用 UseMethod 调度默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7801198/