试图理解为什么rownames = FALSE没有从Test传递给Test.list?
Test = function( object , rownames = FALSE , ... )
{
UseMethod( "Test" )
}
Test.list = function( object , rownames , ... )
{
browser()
# rownames is missing!
}
Test( list() )
Run Code Online (Sandbox Code Playgroud)
只有实际参数传递给方法.每个S3方法都可以有自己不同的默认值(虽然这可能是一个非常糟糕的设计).
你要努力具有相同的参数具有相同的默认值的通用功能,然后可能还有一些额外的参数在最后.
# Bad design, but possible to have defaults be different...
Test.list = function( object , rownames = TRUE , ... )
{
browser()
# rownames is TRUE!
}
Test( list() )
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
269 次 |
| 最近记录: |