从另一个切片创建切片但类型不同
问题内容
是否有一种简单易读的方法来创建切片的副本但使用另一种类型?
例如,我收到了 int32 的切片 (),但我需要它的副本,并且该副本应为 int64: 。
func f(s []int32) int32 {
    
    var newSlice = make([]int64, len(s))
    copy(newSlice, s) // how this can be done?
    // work with newSlice
}
正确答案
唯一的方法是逐个翻译和复制每个元素。您可以使用函数回调编写复制函数:
func CopySlice[S, T any](source []S, translate func(S) T) []T {
    ret := make([]T, 0, len(source))
    for _, x := range source {
        ret = append(ret, translate(x))
    }
    return ret
}
并使用它:
intSlice:=CopySlice[uint32,int]([]uint32{1,2,3},func(in uint32) int {return int(in)})
	声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至201542412@QQ.com举报,一经查实,本站将立刻删除。
  相关推荐
- 
   
   
常见应用场景:利用可变参数的Python函数
Python函数可变参数的常见应用场景Python是一门灵活且强大的编程语言,其中的可变参数是其特色之一。可变参数可以接受任意数量的参数,为函数的使用提供了便利。在下面的文章中,我们将探索可变参数的常
 - 
   
   
简单介绍Python函数中可变参数的使用方式
Python函数可变参数的使用方法简介在Python中,可变参数允许我们定义一个接受任意数量参数的函数。这在一些情况下非常有用,特别是在我们不确定函数会接受多少个参数时。本文将介绍Python中可变参
 - 
   
   
解析Python中回调函数的原理及使用方式
Python回调函数的原理和用法解析回调函数是一种常见的编程技术,尤其在Python中被广泛使用。它可以使我们在异步编程中更加灵活地处理事件和执行任务。本文将对回调函数的原理和用法进行详细解析,并提供
 - 
   
   
探索Go语言切片的重要性:为何它如此关键?
Go语言切片初探:为什么它如此重要?作为一门静态类型编程语言,Go语言在处理数组时提供了一种强大且灵活的方式,那就是切片(slice)。在Go语言中,切片是对数组的一个引用,它并不存储任何数据,只是描
 - 
   
   
Go语言切片底层的实现原理和优势分析揭秘
解密Go语言切片的底层实现原理与优势分析在Go语言中,切片(slice)是一个重要的数据结构,它提供了方便、灵活且高效的数组操作方式。切片的底层实现原理和优势是每个Go语言开发者都应该了解的内容。本文
 















