go泛型出来前怎么写通用的方法

go没有泛型一直以来都为人诟病,好在go的泛型已经接近完成了 最快在1.18版本就要正式出来了(有点小激动),那么在泛型没出来前要怎么写通用的方法呢,相信大家都经常碰到过明明需要的功能都差不多 就是因为里面的类型是string 和 int不同,硬是要写两个方法,感觉这样非常不优雅且方便,于是研究了下通过反射可以实现类似泛型的功能(当然指常见的) 话不多说上代码

// 数组转字符串 (泛型出来前准备)  ps:[1,2,3,4] => 1,2,3,4
func ArrayToString(arr interface{}) string {
	// 反射获取数据
	array := reflect.ValueOf(arr)
	str := ""
	for i:=0;i<array.Len();i++  {
		if str == "" {
			str += array.Index(i).String()
		} else {
			str += ","+array.Index(i).String()
		}
	}
	return str
}

上面的方法只是简单的实现了一下  实际上还需要加很多断言判断的,不过也可以给我们添加一种思路,最后希望泛型早日出来,不过不得不吐槽下go的泛型符号,太没辨识度了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值