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