r語言1.0@toc
whoami<-function(x,…)usemethod(「whoami」)
whoami.foo<-function(x)print(「i am a foo」)> length(whoami(a))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
[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 它是生成摘...