由于函数内部的变量通常具有局部范围(我假设),因此在任何函数式语言中,以伪语言
从函数中检索变量的最佳方式是什么?function test = (
firstVariable = calculateSomething()
secondVariable = calculateSomethingElse()
)
(
function finalCalculation = (
test() /*call the previously defined function*/
result = firstVariable+secondVariable /*how do I get those?*/
)
编辑:我不是一般的。此问题适用于所有功能语言。问题本身在于从另一个函数中检索变量的概念,避免了全局范围。无论如何,为了简单起见,以及示例的结构,让我们说javascript。
答案 0 :(得分:2)
函数可以返回结果:
result function test = (
result.firstVariable = calculateSomething()
result.secondVariable = calculateSomethingElse()
return result
)
function finalCalculation = (
result = test()
)
然而,这个问题有点像你实际上没有任何真正的问题,或者你的实际问题是其他的东西,你把它变成了太学术化的东西。标记为java,javascript,C和C ++的问题很少能得出合理的答案,因为这些语言的细节太不同了。
答案 1 :(得分:1)
在javascript中 IIFE 和关闭原则
var f = (function() {
var localFunc = function(){};
var localVar1 = 3;
var localVar2 = 4;
// publish
return {
localFunc: localFunc,
localVar: localVar1
}
})();
f.localFunc(); // ok
f.localVar2; // nok
我不知道我是否回答了问题
答案 2 :(得分:0)
看起来像基础知识的泄漏。关键字是global variables
,return value
和getter/setter
:您应该指定要使用的语言并提出一些具体问题。