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

时间:2020-11-07 22:58:55

标签: autohotkey

我想将一个函数的输出作为另一个函数的参数传递,而不依赖于临时变量。它尝试的方式,要么无法将其识别为功能,然后输出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
}

2 个答案:

答案 0 :(得分:2)

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

msgbox % functionb(functiona(),1)

functiona() {
    return "a"
}

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

答案 1 :(得分:0)

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
}