一般来说,全局变量是100.它们之所以邪恶的根本原则是,您希望最小化包中的互连.这些相互关联通常会导致函数产生副作用,即它不仅取决于输入参数,也取决于某些全局变量的值.尤其是当函数数量增加时,这可能很难正确执行,也很难调试.
对于R中的全局变量,请参见此SO post.
Edit in response to your comment:
token_information = list(token1 = "087091287129387",
token2 = "UA2329723")
并要求所有需要此信息的函数将其作为参数:
do_stuff = function(arg1, arg2, token)
do_stuff(arg1, arg2, token = token_information)
通过这种方式,从代码中可以清楚地看出,函数中需要令牌信息,您可以自行调试函数.此外,函数没有副作用,因为它的行为完全由输入参数决定.典型的用户脚本如下所示:
token_info = create_token(token1, token2)
do_stuff(arg1, arg2, token_info)
我希望这能让事情变得更清楚.