将一个函数的输出作为参数传递给另一个函数

问题描述

我想将一个函数输出作为另一个函数的参数传递,而不依赖于临时变量。它尝试的方式,要么无法将其识别为功能,然后输出1,要么只是空的。下例的预期输出应为a1。 我用msgBox % functionb(% functiona(),1)尝试过; msgBox % functionb(functiona.call(),1)msgBox % functionb(func("functiona"),1)。 有办法吗?

msgBox % functionb(functiona.call(),1)

functiona() {
return a
}

functionb(Var1,Var2) {
output := Var1 Var2
return output
}

解决方法

我认为正确的方法应该是这样的:

msgbox % functionb(functiona(),1)

functiona() {
    return "a"
}

functionb(Var1,Var2) {
    return,Var1 Var2
}

,

amsgbox % functionb(% functiona(),1)
在已经使用表达式语法的情况下将试图强制表达式。所以那是错误的部分。

msgbox % functionb(functiona.call(),1)
会试图调用一个函数对象,但是“ functiona”不是函数对象,它只是函数的名称。

msgbox % functionb(func("functiona"),1)
将创建一个函数对象,也不正确。


第二个问题是return a
您正在尝试返回名为a的变量的值,而不是返回字符“ a”。

正确的方法是:

MsgBox,% functionb(functiona,1)

functiona() 
{
    return "a"
}

functionb(Var1,Var2) 
{
    output := Var1 Var2
    return output
}