Go语言中单字符字符串数组转换为byte数组的实现方法
单字符字符串数组转byte数组(Go语言)
可以实现,以下是两种常用的可行方案:
- 方案1:遍历转换(兼容所有Go版本)
直接遍历原数组,将每个单字符字符串的首个byte值赋值给目标byte数组即可,示例代码如下:
原数组定义:
转换逻辑:ex := [...]string{"a","o",".",".","2",".",".","9"}
注意:该方案要求原数组的每个字符串元素必须是长度为1的单字符字符串,否则只会取字符串第一个字符的byte值,和预期结果不一致// 声明和原数组长度完全一致的byte数组 var byteArr [len(ex)]byte for i, s := range ex { byteArr[i] = s[0] } - 方案2:泛型封装(仅支持Go 1.18及以上版本)
可以封装为通用转换函数,适配任意长度的定长单字符字符串数组,无需重复编写遍历代码:func StrArrToByteArr[N int, T ~string](strArr [N]T) [N]byte { var res [N]byte for i := range strArr { res[i] = strArr[i][0] } return res } // 调用示例 byteArr := StrArrToByteArr(ex)
转换完成后得到的byteArr数组的内容和原数组完全一致,元素类型为byte。
内容的提问来源于stack exchange,提问作者David Gamboa
相关产品推荐
相关产品推荐

