R語言中泛型函式

2021-08-30 11:01:08 字數 1392 閱讀 3387

r語言1.0@toc

whoami<-function(x,…)usemethod(「whoami」)

whoami.foo<-function(x)print(「i am a foo」)

whoami.bar<-function(x)print(「i am a bar」)

whoami.default<-function(x)print(「i don』t know who i am」)

a=1:10

b=2:20

class(a)

[1] 「integer」

class(b)

[1] 「integer」

whoami(a)

error in whoami(a) : 沒有"whoami"這個函式//是因為省略號的格式不對

whoami<-function(x,…)usemethod(「whoami」)

whoami(a)

[1] 「i don』t know who i am」

length(a)

[1] 10

> length(whoami(a))

[1] 「i don』t know who i am」

[1] 1 //???

whoami(a) # a的類為「integer」,沒有為該類定義方法,就執行default的方法

[1] 「i don』t know who i am」

attr(a,『class』) <- 『foo』 # 用attr( )函式將a的類指定為「foo」

class(a)

[1] 「foo」

attr(b,『class』)<-c(『baz』,『bam』,『bar』) #指定b的屬於三個類「baz」「bam」「bar」

class(b)

[1] 「baz」 「bam」 「bar」

whoami(a) # 現在a屬於「foo」類,執行whoami.foo( )

[1] 「i am a foo」

whoami(b) # b雖然屬於三個類,但只對「bar」類定義了方法

[1] 「i am a bar」

attr(a,『class』) <- 『bar』 # 改變a的類

class(a)

[1] 「bar」

whoami(a)

[1] 「i am a bar」

泛型函式Func

泛型函式,即可以接受任何型別的通用函式 有where約束除外 例如 呼叫getcachedata,那第二個委託引數就是func,這個函式返回值也是int 呼叫getcachedata,那第二個委託引數就是func,這個函式返回值是string public static intstrtoint st...

c語言實現泛型函式

liner search include include void lsearch void key,void base,int n,int elemsize,int compfunc void void return null intintcomp void a,void b void main ...

R語言學習筆記(二) 類與泛型函式

大多數r物件都是基於s3類 於第三代s語言 例如直方圖函式hist 輸出是乙個包含多個元件的列表,它還有乙個屬性 attribute 用來指定列表的類,即histogram類。類用在泛型函式中,泛型函式是乙個函式族,其中的每個函式都有相似的功能,但是適用於某個特定的類。比如summary 它是生成摘...