Wil*_*nao 2 polymorphism r ampersand
我喜欢用粘贴重载我的&符号运算符.这样我就可以轻松粘贴东西了.像这样:
R> "Hello" & " World"
[1] "Hello World"
Run Code Online (Sandbox Code Playgroud)
我实现这一目标的方式是:
"&" <- function(...){paste(..., sep = "")}
Run Code Online (Sandbox Code Playgroud)
这一切都很好,花花公子,但你失去了使用&符作为自然"和"操作符的能力.什么是最好,最快速的最美妙的方式来重载我的&符号,以便它识别何时输入是合乎逻辑的?
TRUE & FALSE == FALSE
Run Code Online (Sandbox Code Playgroud)
等等
您需要在R中使用S3对象系统:
`&` <- function(e1, e2) UseMethod("&", c(e1, e2))
`&.default` <- function(e1, e2) paste(e1, e2)
`&.logical` <- function(e1, e2) .Primitive("&")(e1, e2)
Run Code Online (Sandbox Code Playgroud)
现在您可以&按照您的预期使用:
> 1 & 2
[1] "1 2"
> TRUE & FALSE
[1] FALSE
> "Hello" & "World"
[1] "Hello World"
>
Run Code Online (Sandbox Code Playgroud)