繁体   English   中英

是否可以在 Google Apps 脚本中将每个 function 写为“纯函数”?

[英]Is it possible to write every function as “pure function” in Google Apps Script?

我对函数式编程很感兴趣,所以我决定在我的Google Sheets文件的脚本环境中尝试这种方法,您知道脚本语言是Google Apps Script ,基本上是javascript 它甚至支持一些(如果不是全部)ES6 语法。

问题是我不能直接运行任何代码,例如:

let a = 4;
Logger.log(a);

I mean, I cannot run it globally, I need to define a function with any name, and then place the code inside that function, and I can run the function, so the function runs the code inside.

所以,也许你会问,“为什么这种行为会导致编写纯函数式代码出现问题?” 好吧,因为据我所知,关于纯函数的两个最重要的因素是:

1)我们不能在 function 中使用全局变量/函数,而是必须作为参数传递(然后当然是 arguments)。

2)在代码的可读性和组织方面,在 function 中定义 function 通常不是一个好主意。

所以,我想定义更多的功能(做一些事情),而不仅仅是一个“主要”function,我找不到任何方法,任何单一的方法来编写代码(作为一个整体)而不违反两者中的至少一个上面的陈述。

所以,我的意思是,如果不制作至少一个非纯 function,我就不能写任何东西。

正如用户在评论中解释的那样:

您的第一个假设部分不正确。 function 不能依赖于全局可变变量,但它可能依赖于全局常量和全局纯函数。 但是,通常您更愿意将 function 依赖项作为参数传递,以获得更一般的高阶 function。 您的第二个假设仅基于意见。

因此,例如,您可以定义一个主 function 来作为一个整体运行您的代码,同时在主 function 中定义函数以使用 Apps Script 实现函数式编程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM