go语言结构体数组赋值(结构体数组赋值给另一个结构体数组)

什么是Go语言结构体数组?

Go语言结构体数组是一组结构体类型的变量,它们拥有相同的数据类型和名称,但是每个变量的实际值可以不同。与常规数组相比,它可以存储不同类型的数据。

数组需要在声明时初始化,每个元素都可以赋予相应类型的值。在Go语言中,结构体数组的初始化可以通过字面量方式或循环方式进行。当初始化需要设置多个相似的结构体,或者需要依次设置其中的每个字段,使用循环方式是非常方便的。

结构体数组的定义和初始化

Go语言中定义结构体的语法如下:

type structName struct {

    fieldName1 type1

    fieldName2 type2

}

定义结构体数组的语法如下:

var arr []structName

通过字面量方式对结构体数组进行初始化,示例代码如下:

var arr = []structName{

    {fieldName1: value1, fieldName2: value2},

    {fieldName1: value3, fieldName2: value4},

}

在需要设置多个字段的情况下,可以使用循环进行初始化,示例代码如下:

var arr [2]structName

for i, _ := range arr {

    arr[i].fieldName1 = value1

    arr[i].fieldName2 = value2

}

结构体数组的赋值

结构体数组的元素使用下标进行访问,示例代码如下:

var arr []structName

fmt.Println(arr[0].fieldName1)

在结构体数组中,一个元素可以赋值给另一个元素,但是需要注意的是,赋值后两个元素的字段值是相等的,而不仅仅是简单的引用或指针。示例代码如下:

arr1 := []structName{

    {fieldName1: value1, fieldName2: value2},

}

arr2 := arr1

arr2[0].fieldName1 = 10

fmt.Println(arr1[0].fieldName1) //输出value1

fmt.Println(arr2[0].fieldName1) //输出10

以上代码可以看出,修改arr2的元素值,不会影响到arr1的元素值。

本文来自投稿,不代表亲测学习网立场,如若转载,请注明出处:https://www.qince.net/golang-50y4j.html

郑重声明:

本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。

我们不承担任何技术及版权问题,且不对任何资源负法律责任。

如遇到资源无法下载,请点击这里失效报错。失效报错提交后记得查看你的留言信息,24小时之内反馈信息。

如有侵犯您的版权,请给我们私信,我们会尽快处理,并诚恳的向你道歉!

(0)
上一篇 2023年5月2日 上午3:28
下一篇 2023年5月2日 上午3:28

猜你喜欢