“::”的目的是什么?为什么有用?

时间:2016-04-25 23:21:04

标签: r

在R中使用::的目的是什么?我注意到在一些指南中他们使用::来指示函数来自哪个包。这会使事情运行得更快还是仅仅表明需要哪些软件包?

此外,::还有其他用途/用途吗?

ggplot2软件包介绍的片段:

grid::polygonGrob(
      coords$x, coords$y, 
      default.units = "native",
      gp = grid::gpar(
        col = first_row$colour,
        fill = scales::alpha(first_row$fill, first_row$alpha),
        lwd = first_row$size * .pt,
        lty = first_row$linetype
      )

1 个答案:

答案 0 :(得分:5)

在任何给定时间,都有基于加载包的顺序建立的NAMESPACE的搜索路径。有时加载包装将会掩盖"与工作空间中已存在的名称相同的函数。这通常在新软件包加载时公布,但用户可能会忽略这一问题。使用" ::"确保在正确的环境下从所需的包中访问特定的功能。尝试使用第二个库调用重新加载函数会失败,因为library()函数会检查库是否已经加载,如果它在搜索路径中则不会执行任何操作。