查询R语言%||% pipe operator在r-lib/usethis仓库的源码定义位置
%||%操作符的定义位置说明 %||%不属于管道操作符,是r-lib生态下R包通用的空值兜底操作符,运行逻辑为:如果操作符左侧的返回结果是NULL,就返回右侧设置的备选值,否则直接返回左侧的原始结果。你给出的代码段getOption("usethis.description") %||% list(),作用就是读取全局配置项usethis.description,如果该配置项没有被设置(读取返回NULL),就默认用空列表作为配置值。- 这个操作符的核心实现非常简短,源码如下:
`%||%` <- function(x, y) { if (is.null(x)) y else x }
- 在usethis包中,
%||%并不是包内独立编写实现的,是从rlang包导入后重导出供用户调用的,usethis源码中对应的导入声明存放在R/utils.R文件内。 - 如果你需要复用相关代码,不需要追溯复杂的依赖链路:既可以直接把上面3行实现代码复制到自己的项目脚本中使用,也可以直接加载rlang包后调用该操作符。
内容的提问来源于stack exchange,提问作者Dylan Russell
相关产品推荐
相关产品推荐

