type
status
date
slug
summary
tags
category
icon
password

overview

本文将介绍Go中变长参数函数的语法以及常见的用途。
 

语法

变长参数指的就是实际被调用时可以当作零个,一个或是多个参数的参数类型,如下:
一个变长参数函数只能有一个变长参数类型,且必须出现在参数列表的末尾:
 
在函数内部,这种类型会被优化为数组(…T → []T)
于是,我们可以像下面一样在函数内部使用变长参数
 
在函数外部,对于变长参数…T,我们可以传递两种类型的数据:
  1. 多个T类型的参数
  1. t… (t为[]T类型变量)
注意,这两者不可混用!
 
Go内置的包中,也常有变长参数函数
比如
 

实际用途

模拟函数重载

重载函数指的是函数名称相同,但参数不同的函数。Go语言的设计者们为了语言的简化而放弃支持函数重载。
当要重载的函数是相同类型,只是数目不同时,我们可以用变长参数函数去模拟重载
 

实现功能选项模式

我们时常会遇到这种需求:实现带有一些设置选项的创造型函数,比如,创建一个tcp连接池可以传入容量限制等参数,对于这类需求有很多种方案,下面我们来使用变长参数函数去解决。
假设,我们的场景是:创建一个新的学生,拥有 身高,性别,体重三个选项:
使用变长参数去创建的过程如下:
借助函数一等公民的性质以及可变参数函数,可以随意扩展传入的配置选项,且参数可读性高。
支付系统和价值存储关于cpu性能
Alex
Alex
某不知名青年|web2.5人士|喜欢猫与美少女
公告
type
status
date
slug
summary
tags
category
icon
password
有事请邮箱联系:alexwu7@outlook.com
🚀🚀🚀