2016-08-11 7 views
0

JavaやEiffelなどの言語では、関数(値を返す)と変換ステートメントのメソッド、グループが分かれています。 Rは、言語に基本としての機能を有しているが、明確な方法がない 公共主何とかNAMEOFMETHOD(X){ STATEMENT/COMMAND STATEMENT/COMMAND STATEMENT/COMMAND }Rを使用すると、他の言語のメソッドに相当するもの

:だから方法は次のようなものであろう方法を作る(私は思う)。クラスにコマンドのグループを入れるだけですか? (私は数年前にエッフェルとジャワでプログラミングしましたが、統計のためにRを使っています。プログラミングをして仕事を伸ばしていますか?優しくしてください。

+0

Javaはメソッドと関数の違いをもたらすと思いますか?実際、Javaはメソッドだけを知っています。 – AlexR

+5

Rのオブジェクト指向プログラミングツールを学ぼうとしている場合は、OOフィールドガイドの章[here](http://adv-r.had.co.nz)(おそらく本全体)を読んでください。 – joran

答えて

1

Rは関数型プログラミング言語です。関数(プロットの生成などの副作用の可能性あり)とメソッドの間に技術的に大きな違いはないことを理解することが重要です。

唯一の違いは、「戻り値」がないことです。

署名

void doSomething() 

(WICHがreturnを外す)とA Javaメソッドが

NULLが戻り値( "無")であり、 invisibleはRを指示
doSomething <- function(){ 
    # Do something here 
    return(invisible(NULL)) 
} 

としてRで実現することができる

この結果をコンソールに自動的に印刷しないようにします。

return(invisible(NULL))はRの関数本体の最後の計算の結果を自動的に返すので、それはまた、invisible()と同等でなければなりませんように、それはあなたの関数内のコードの最後の行だ場合、短い声明return(invisible())に相当します。

+0

冗長な 'return(invisible(NULL)) 'の代わりに' invisible() 'と書くこともできます。実際、最初のものはかなり機能していません。 –

+0

@KonradRudolphよく知っておくべきですが、少なくとも 'return'は私がいつも保持したいと思っているものなので、すべての終了点と正確に返されるものをすばやく見ることができます(計算後に診断情報を印刷することによって、適切な戻り値を追加することを忘れる^^ - 計算時間が8時間を超えると非常に悪い) – AlexR

関連する問題