You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言中仅供内部调用的非公开函数命名约定咨询

R内部非公开函数的通用命名约定

R生态中针对不希望用户直接调用的内部函数,有两种广泛认可的命名约定:

  • 点号(.)开头命名:这是和Python下划线开头私有函数最接近的原生约定,R允许变量名以点号开头,且这类对象默认处于隐藏状态,使用ls()查看环境对象时默认不会被列出,认知度最高。你案例中的函数可直接命名为.annotateFxn,重构后的代码示例如下:
annotate <- function(param1, param2, param3) {
  # setup
  .annotateFxn(setup, param1, param2)
  .annotateFxn(setup, param1, param2, param3)
}

.annotateFxn <- function(setup, param1, param2, param3 = NULL) {
  # Do work, account for if param3 is NULL
}
  • 加internal后缀命名:如果担心点开头的隐藏属性会降低代码可读性,也可以采用annotateFxn_internal这类命名,无需隐藏属性,用户看到命名即可明确这是不建议直接调用的内部函数。

如果你是在开发R包,还可以配合NAMESPACE配置做双重保障:只要不把内部函数加入export列表,用户正常加载包后无法直接调用该函数,仅能通过:::语法强制访问,符合绝大多数场景的非公开需求。

内容的提问来源于stack exchange,提问作者Jeff

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 11:42:01