2016-08-11 69 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

相关问题