+ 收藏我们

网站模板

网站模板搜索
404模板 营销型模板 外贸网站模板 单页模板 双语模板 标签大全
电话:18630701785
首页 > 站长学院 > 如何在不定义数组大小的情况下将数组传递给 GO 函数? >

如何在不定义数组大小的情况下将数组传递给 GO 函数?

时间:2024-04-08 08:52:41

本篇文章给大家分享《如何在不定义数组大小的情况下将数组传递给 Go 函数?》,覆盖了golang的常见基础知识,其实一个语言的全部知识点一篇文章是不可能说完的,但希望通过这些问题,让读者对自己的掌握程度有一定的认识(B 数),从而弥补自己的不足,更好的掌握它。

问题内容
我尝试定义一个数组,将其传递给未定义参数大小的函数,但是会发生错误。

package main

import "fmt"

func main() {
    var a=[5]int{1,2,3,4,5}
    f(a,5)
    fmt.Println(a)
}
func f(arr []int,size int) {
    for i,x:=range arr  {
        fmt.Println(i,x)
        arr[i]=100
    }
}
不能在 f 的参数中使用 (type [5]int) 作为类型 []int


解决方案

您可以将数组转换为内联切片,如下所示:

f(a[:],5)
Playground

更多背景信息请参阅:https://blog.golang.org/go-slices-usage-and-internals

以上就是本文的全部内容了.

有问题可以加入网站技术QQ群一起交流学习

本站会员学习、解决问题QQ群(691961965)

客服微信号:lpf010888

Title