答えて
EDIT:
歴史のビットを与える:setClassではオプションのアクセスを '関数は、クラスのみを提供ゲッターとセッターを介してアクセスすることができ、いわゆる「特権スロット」を作成するために提供されました。これは、(getterを提供しないことによって)プライベートスロットを作成することを可能にするが、この機能は決して実装されていない。
アクセスとバージョンは、S-Plusとの互換性のために含まれていますが、 は現在は無視:
?setClass
のヘルプページには、現在読み込みます。すべてのスロットが到達可能である@
表記を介するなど
だから、プライベートとパブリックのスロットのようなものはありません。個人的には、パッケージに含まれているgetterとsetterを使用することで、容易に到達できないオブジェクトからの情報を使用できるので、非常に満足しています。また、getterやsetterによって生成されるオーバーヘッドを避けることで、重い計算を節約することもできます。
私は、パブリックと "プライベート"スロットを区別するための命名規則を知らない。 「プライベート」スロットの前にドットを付けることで、区別することはできますが、スロットの動作には影響しません。ほとんどのRプログラマは公的および私的なスロットを気にしないので、一般的な習慣でもありません。彼らは、平均的なユーザーが到達すべきではないスロットのゲッターとセッターを提供していません。
簡単な例を挙げてみましょう:次の例では、2つのスロットを持つクラスと、1つのスロットだけのゲッターとセッターを作成します。
setClass("Example",
representation(
aslot = "numeric",
.ahiddenslot = "character"
)
)
setGeneric("aslot", function(x) standardGeneric("aslot"))
setMethod("aslot","Example",function(x){
[email protected]
})
setGeneric("aslot<-", function(x,value) standardGeneric("aslot<-"))
setMethod("aslot<-","Example",function(x,value){
[email protected] <- value
x
})
あなたはまた、単に隠されたスロットプリントアウトしていないshow
方法を設定することができます
> X <- new("Example",aslot=1,.ahiddenslot="b")
> X
Example with value for aslot: 1
> aslot(X)
[1] 1
> aslot(X) <- 3
しかし.ahiddenslot:
setMethod("show","Example",function(object){
cat("Example with value for aslot: ", [email protected],"\n")
})
これは、次の通常の使用を提供しますまだ到達可能です:
> slot(X,".ahiddenslot")
[1] "b"
- 1. symfonyのセキュリティFOSOAuthServerBundleパブリックおよびプライベートルート
- 2. AWS単一のパブリックIPおよびウェブソケット
- 3. - 、_、およびR
- 4. model.matrixおよびR
- 5. GROUP_BYは、フィルタおよびR
- 6. SQL Server 2016およびR
- 7. マッチ番号およびR
- 8. laravelのURLからパブリック/削除/およびCSSやJavaScript
- 9. Realm Mobile Platform:パブリック、プライベート、および共有のデータベース?
- 10. インストールパッケージのRGtk2 '内のエラーおよびR
- 11. R:州および郡の概要choroplethrZip
- 12. インポート複数のJSONファイルおよびR
- 13. Rのデータクリーニングおよび帰属
- 14. パブリックおよびプライベートJKSファイルを使用してKeyPairを生成
- 15. Microsoft Graph Filterパブリックおよびプライベート連絡先
- 16. Rおよびダウンロードデータをオンラインフォームを記入
- 17. RおよびSQLクエリ一緒フォーマット
- 18. 共同利用およびR
- 19. パブリックおよびプライベートのレールアプリの管理領域を確保する方法
- 20. 可能なルート53_zoneはプライベートおよびパブリックのホストゾーンを作成しません
- 21. コンポーネント、ディレクティブおよびパイプをパブリックにしてモジュールの外で使用する
- 22. Azure VMでローカルおよびパブリックのHostNameを取得する方法は?
- 23. Rの回帰モデルの中およびその間の要素
- 24. Python、R、およびMongoDBのDockerコンテナのイメージの作成方法
- 25. &&(論理および)および|| (if文)
- 26. Rの累積合計、移動平均、およびSQLの「グループ」相当額R
- 27. Rのファンクション構成(および上位レベルのファンクション)
- 28. Rの関数名、引数、および戻り値の解析
- 29. Rおよびggplot2チャートの余分なラベルの削除
- 30. R MarkdownおよびhtmlTable。 R Markdownのループでhtmlテーブルを生成するには?
T彼は "。"ほとんどの場合、それは私がそれを区別することによって私の意図の点で物事を直に保つのに役立つと思うので、意味があります。彼らが保護されているかどうかは気にしません。 –