将函数返回值作为输入传递给另一个函数
在 Go 中,您可以方便地将一个函数的返回值作为输入参数传递给另一个功能。例如:
<code class="go">func returnIntAndString() (i int, s string) {...} func doSomething(i int, s string) {...} doSomething(returnIntAndString())</code>
但是,当您向第二个函数添加附加参数时,会出现复杂情况:
<code class="go">func doSomething(msg string, i int, s string) {...} doSomething("message", returnIntAndString()) // Error</code>
错误消息表明您无法将多个返回值传递给函数需要一个参数。
解决方案
根据 Go 规范,一个函数只能将其返回值作为输入参数传递给另一个函数(如果后者期望确切的值)相同数量的参数。在这种情况下,没有传递额外参数的机制。
因此,要解决此问题,您有两个选择:
<code class="go">func doSomethingVariadic(msg string, args ...interface{}) { // Code to handle variable number of arguments }</code>
然后您可以使用所需的参数调用此函数,包括 returnIntAndString() 的返回值:
<code class="go">doSomethingVariadic("message", returnIntAndString())</code>
以上是如何在 Go 中将多个返回值从一个函数传递到另一个函数?的详细内容。更多信息请关注PHP中文网其他相关文章!