GO语言数组类型是值类型

按照数据的划分数为两大类型
1.基本类型 int ,float,string, bool…
2.复合类型 array slice map function pointer channel…

GO语言中的数组是值类型并不是引用类型(内存地址),能够被值传递的类型 可以成为值类型;几个基本类型都是值类型,

package main

import "fmt"

func main() {
	arr1 := [4]int{1, 2, 3, 4}
	arr2 := [4]string{"a", "b", "c", "d"}
	arr3 := [4]float64{1.11, 1.12, 1.13, 1.14}

	fmt.Printf("%T\n", arr1) //[4]int
	fmt.Printf("%T\n", arr2) //[4]string
	fmt.Printf("%T\n", arr3) //[4]float64
	//-------------------------------------------------------------------
	num := 10
	fmt.Printf("%T\n", num)
	num2 := num //值传递
	fmt.Println(num, num2)
	num2 = 20
	fmt.Println(num, num2)
	//以上效果能够看出来 是值的传递
	//测试数组
	arr5 := arr1      //经过下面的输出结果可见GO语言中的数组和大多数语言不一样 它是值的传递 
	fmt.Println(arr1) //[1 2 3 4]
	fmt.Println(arr5) //[1 2 3 4]
	arr5[1] = 100
	fmt.Println(arr1) //[1 2 3 4]
	fmt.Println(arr5) //[1 100 3 4]

}

//数字在内存中开辟的是连续的内存,数字的地址是数组的首地址也是第一个元素的地址!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值