这可能适用于其他语言,而不仅限于R语言,但是我在尝试构建R项目时遇到了这个问题,所以我在这里发布。
比方说我的项目中有
- Main.R
- Utilities.R
和在Utilities.R中
# Utilities.R
foo <- function(save_path) {
print(save_path)
}
在Main.R中,我有
# Main.R
source("Utilities.R")
save_path <- "path/to/folder"
foo(save_path = save_path)
但是,我发现我实际上根本不需要将save_path
设置为参数。如果我将文件设置为
# Utilities.R
foo <- function() {
print(save_path)
}
# Main.R
source("Utilities.R")
save_path <- "path/to/folder"
foo()
由于save_path
存在于Main.R
的范围内,所以我可以获得相同的结果。这是不好的做法吗?假设我在Main.R
中有很多在foo()
中设置/确定的类似全局的变量,最好是显式地传递所有这些变量吗?