2016-08-11 75 views
0

在語言如Java和艾菲爾,有函數(返回值)和方法,變革語句組之間的鴻溝。因此,一個方法是這樣的: 公共主等等NAMEOFMETHOD(X){ 聲明/ COMMAND STATEMENT/COMMAND STATEMENT/COMMAND },有什麼方法的等同物在其他語言

R的功能爲基本的語言,但沒有明顯的方法做一個方法(我認爲)。我只是把一組命令放在一個類中? (我編程年前埃菲爾鐵塔和Java,但現在用的統計R和我伸出我的工作有一定編程 - 或者是它的編碼,你現在把它?!)

老傢伙再學習。請溫柔。

+0

什麼讓你覺得Java使得方法和功能之間的區別嗎?事實上,Java只知道方法。 – AlexR

+5

如果您正在嘗試學習R的面向對象的編程工具,請閱讀OO領域指南章節[here](http://adv-r.had.co.nz)(可能還有整本書)。 – joran

回答

1

R是功能的編程語言。重要的是要明白,在功能(可能產生的情節等副作用)和方法之間技術上沒有真正的區別。

唯一的區別是不存在「返回值」的。

的Java方法與簽名

void doSomething() 

(至極錯過return)可以作爲R被實現爲

doSomething <- function(){ 
    # Do something here 
    return(invisible(NULL)) 
} 

其中NULL是返回值( 「無」),並invisible指示ř不要自動將此結果打印到控制檯。

return(invisible(NULL))等同於較短的聲明return(invisible()),如果它的代碼在函數的最後一行,因爲它應該是,也相當於invisible()因爲R汽車,返回函數體中最後計算的結果。

+0

除了詳細的'return(不可見(NULL))',你還可以寫'invisible()'。事實上,第一個是非常不起作用的。 –

+0

@KonradRudolph好知道,但至少'return'是我一直想保持這樣我就可以很快地看到所有的出口點,準確地返回什麼(我毀了一小部分被計算後打印診斷信息lapply是已經並忘記增加一個適當的返回值^^ - 非常糟糕,計算時間> 8小時) – AlexR

相關問題