【发布时间】:2020-07-29 15:32:10
【问题描述】:
只是一个一般性的问题...
我创建了一个函数,它读取文件并将结果存储到函数内部的预定义名称中。然后该函数将带有函数assign() 的结果以预定义的名称存储到全局环境中。当然我可以通过执行函数并将结果存储到一个自命名的变量中(不使用assign()。它对我很有用,但是我在stackoverflow中找到了一个帖子(再也找不到它),有人给了建议永远不要那样做。有人能告诉我为什么吗?
【问题讨论】:
只是一个一般性的问题...
我创建了一个函数,它读取文件并将结果存储到函数内部的预定义名称中。然后该函数将带有函数assign() 的结果以预定义的名称存储到全局环境中。当然我可以通过执行函数并将结果存储到一个自命名的变量中(不使用assign()。它对我很有用,但是我在stackoverflow中找到了一个帖子(再也找不到它),有人给了建议永远不要那样做。有人能告诉我为什么吗?
【问题讨论】:
因为它违背了良好的函数式编程原则。
使用函数而不是简单地使用一次性脚本的全部原因是避免重复并提高代码效率。
通过将结果的分配硬编码到函数中,实际上你剥夺了函数的所有好处,同时增加了编写函数的复杂性。
如果需要多次使用该函数,还需要将结果的命名调上去!如果您只是简单地保存中间结果,那么 a) 无需在全局环境中执行此操作,并且 b) 您将函数链接在一起,而不是编写一个相关函数(可能包括其他函数以确保,模块化是这里的关键)。
【讨论】: