zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Go语言的可变(不定长)参数函数

Go语言 函数 参数 可变 不定
2023-09-14 09:02:05 时间

上面的三个点(…)就表示args是一个可变参数。在函数Function中 参数args是被当做一个slice来处理的。

可变参数函数的使用

可变参数的用法和一般的参数一样 只是可以随意的指定参数的个数。

给可变参数函数传递数组

当然 我们的参数可能本来就是一个slice 但是函数不允许传入参数。所以只能反过来 把slice打散传入给函数。


使用时可变参数函数时可能遇到的错误

这是我遇到的一个问题 在调用一个可变参数函数的时候。如果我把slice手动使用Function(slice[0],slice[1])这样传入 可以编译运行 但是如果我使用Function(slice …)就会爆如下错误。


这是我在stackoverflow找到的问题的原因。 上面你的代码也是stackoverflow的

其实 从错误代码中也可以看出来 这是变量类型的问题。[]string和[]interface {}类型的问题。估计在使用Function slice… 这种 打散数组传递时 函数是直接把slice传递进去 而不是像一般的用法那样 单个合并到slice里。string传递给ingerface{}类型的变量是允许的 但是[]string无法转换成[]interface {}类型。

对此 我们只能手动把[]string类型转换成[]interface {}类型 再传参。


Excelize 发布 2.7.1 版本,Go 语言 Excel 文档基础库 Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,2023年4月10日,社区正式发布了 2.7.1 版本,该版本包含了多项新增功能、错误修复和兼容性提升优化。
Windows平台Go语言环境搭建 “当时,没有一个团队成员知道 Go,但在一个月内,每个人都在用 Go 编写,我们正在构建端点。正是它的灵活性、易用性以及 Go 背后的真正酷的概念(Go 如何处理本机并发、垃圾收集,当然还有安全+速度)帮助我们在构建过程中参与其中。还有,谁能打败那个可爱的吉祥物!— Jaime Enrique Garcia Lopez,Capital One 高级软件开发经理