您的位置:首页 > 教程笔记 > 综合教程

从另一个切片创建切片但类型不同

2024-02-05 12:35:23 综合教程 147

问题内容

是否有一种简单易读的方法来创建切片的副本但使用另一种类型?
例如,我收到了 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)})

相关推荐

  • 常见应用场景:利用可变参数的Python函数

    常见应用场景:利用可变参数的Python函数

    Python函数可变参数的常见应用场景Python是一门灵活且强大的编程语言,其中的可变参数是其特色之一。可变参数可以接受任意数量的参数,为函数的使用提供了便利。在下面的文章中,我们将探索可变参数的常

    综合教程 2024-02-05 12:35:10 207
  • 简单介绍Python函数中可变参数的使用方式

    简单介绍Python函数中可变参数的使用方式

    Python函数可变参数的使用方法简介在Python中,可变参数允许我们定义一个接受任意数量参数的函数。这在一些情况下非常有用,特别是在我们不确定函数会接受多少个参数时。本文将介绍Python中可变参

    综合教程 2024-02-05 12:35:05 152
  • 解析Python中回调函数的原理及使用方式

    解析Python中回调函数的原理及使用方式

    Python回调函数的原理和用法解析回调函数是一种常见的编程技术,尤其在Python中被广泛使用。它可以使我们在异步编程中更加灵活地处理事件和执行任务。本文将对回调函数的原理和用法进行详细解析,并提供

    综合教程 2024-02-05 12:35:01 106
  • 探索Go语言切片的重要性:为何它如此关键?

    探索Go语言切片的重要性:为何它如此关键?

    Go语言切片初探:为什么它如此重要?作为一门静态类型编程语言,Go语言在处理数组时提供了一种强大且灵活的方式,那就是切片(slice)。在Go语言中,切片是对数组的一个引用,它并不存储任何数据,只是描

    综合教程 2024-02-05 12:34:42 154
  • Go语言切片底层的实现原理和优势分析揭秘

    Go语言切片底层的实现原理和优势分析揭秘

    解密Go语言切片的底层实现原理与优势分析在Go语言中,切片(slice)是一个重要的数据结构,它提供了方便、灵活且高效的数组操作方式。切片的底层实现原理和优势是每个Go语言开发者都应该了解的内容。本文

    综合教程 2024-02-05 12:34:29 117