将参数分配给 null 与函数中没有任何内容
Assigning an argument to null verses nothing in the function
据我了解,如果我有如下函数:
hello1<- function(pillow){
if (missing(pillow)){
stop("You need to enter pillow")
}
pillow
}
hello1()
停止 returns 我想要的消息:
hello2<- function(pillow){
if (is.null(pillow)){
stop("You need to enter pillow")
}
pillow
}
hello2()
停止并 returns 以下消息:
Error in hello2() : argument "pillow" is missing, with no default
hello3<- function(pillow=NULL){
if (is.null(pillow)){
stop("You need to enter pillow")
}
pillow
}
hello3()
停止 returns 我想要的消息:
hello4<- function(pillow=NULL){
if (missing(pillow)){
stop("You need to enter pillow")
}
pillow
}
hello4()
停止 returns 我想要的消息:
总而言之,当参数设置为 NULL
时,我可以使用 missing()
和 is.null()
获得我想要的消息,但是,当参数设置为空时,我可以只用 missing()
而不是 is.null()
得到我想要的消息。话虽如此,我想知道在参数中分配 NULL
与不分配 NULL
相关的利弊是什么。
使用 missing
的最大优势是您可以明确要测试的内容(是否给出参数?)。默认值 NULL
不太明确,因为 NULL 可能是某些函数的正确值。
一种特殊情况是参数由另一个函数计算,在某些特殊情况下它计算的值为 NULL。
据我了解,如果我有如下函数:
hello1<- function(pillow){
if (missing(pillow)){
stop("You need to enter pillow")
}
pillow
}
hello1()
停止 returns 我想要的消息:
hello2<- function(pillow){
if (is.null(pillow)){
stop("You need to enter pillow")
}
pillow
}
hello2()
停止并 returns 以下消息:
Error in hello2() : argument "pillow" is missing, with no default
hello3<- function(pillow=NULL){
if (is.null(pillow)){
stop("You need to enter pillow")
}
pillow
}
hello3()
停止 returns 我想要的消息:
hello4<- function(pillow=NULL){
if (missing(pillow)){
stop("You need to enter pillow")
}
pillow
}
hello4()
停止 returns 我想要的消息:
总而言之,当参数设置为 NULL
时,我可以使用 missing()
和 is.null()
获得我想要的消息,但是,当参数设置为空时,我可以只用 missing()
而不是 is.null()
得到我想要的消息。话虽如此,我想知道在参数中分配 NULL
与不分配 NULL
相关的利弊是什么。
使用 missing
的最大优势是您可以明确要测试的内容(是否给出参数?)。默认值 NULL
不太明确,因为 NULL 可能是某些函数的正确值。
一种特殊情况是参数由另一个函数计算,在某些特殊情况下它计算的值为 NULL。