美文网首页
Go 学习:引用类型与值类型

Go 学习:引用类型与值类型

作者: Shrike_55e0 | 来源:发表于2019-08-06 13:54 被阅读0次
Golang中只有三种引用类型:slice(切片)、map(字典)、channel(管道);
引用类型
  • 引用类型理解为(C语言):指针
值类型
  • 值的拷贝
package main

import "fmt"

func main(){
    a := [5]int{2, 3, 4, 5, 6} //定义一个数组
    b := a
    fmt.Println(a,b) //[2 3 4 5 6] [2 3 4 5 6]
    b[2] = 77
    fmt.Println(a,b) //[2 3 4 5 6] [2 3 77 5 6]
}

上述定义的数组,b是a 的值拷贝,b值改变不影响a

package main

import "fmt"
func main(){
    a := []int{2, 3, 4, 5, 6} //切片
    b := a
    fmt.Println(a, b) //[2 3 4 5 6] [2 3 4 5 6]
    b[2] = 77
    fmt.Println(a, b) // [2 3 77 5 6] [2 3 77 5 6]
}
上述定义的切片,b是a 的引用, b值改变a
package main

import "fmt"
func main(){
    a := map[string]string{
        "01": "i am 01",
        "02": "i am 02",
        "03": "i am 03",
    }
    b := a
    fmt.Println(a, b) //map[02:i am 02 03:i am 03 01:i am 01] map[03:i am 03 01:i am 01 02:i am 02]
    b["02"] = "i am b"
    fmt.Println(a, b) //map[01:i am 01 02:i am b 03:i am 03] map[01:i am 01 02:i am b 03:i am 03]

相关文章

  • Go 学习:引用类型与值类型

    Golang中只有三种引用类型:slice(切片)、map(字典)、channel(管道); 引用类型 引用类型理...

  • Note 3 Swift (1)

    Swift学习笔记 变量与常量 变量 常量 值类型与引用类型 值类型 引用类型 数组与字典 数组 字典

  • Go 学习之路:引用类型与值类型

    Golang中只有三种引用类型:slice(切片)、map(字典)、channel(管道); 引用类型 引用类型理...

  • 4 Go特种类型:值、指针、引用及nil

    一、值、指针类型及引用类型 在Go中,一个变量持有的内容无非三种:值类型、指针类型及引用类型。值类型和指针类型可以...

  • javascript复习笔记一(变量类型与计算)

    变量类型:分为值类型与引用类型 一、值类型与引用类型 值类型:存储的是具体的值(undefined、Boolean...

  • JavaScript中的浅拷贝与深拷贝

    值类型与引用类型 谈浅拷贝与深拷贝之前,我们需要先理清一个概念,即值类型与引用类型。 什么是值类型与引用类型?这要...

  • 深拷贝与浅拷贝

    一.引用类型与值类型 我们都知道,js有两种基本类型,引用类型与值类型。引用类型的“=”只是拷贝了引用,而基本类型...

  • C#中数据到底存在堆上还是栈上

    C#的栈与堆 首先复习一下值类型与引用类型 1. 值类型与引用类型 值类型:基本数据类型([int,long,fl...

  • 装箱拆箱Day0817

    //值类型和引用类型之间的转换称为装箱与拆箱 //装箱是值类型转化为引用类型 //拆箱是引用类型转化为值类型 in...

  • JS基本类型、引用类型梳理

    原始值类型与引用值类型 ECMAScript规范中定义了变量的两种类型:原始值类型和引用值类型。区别两种类型的直接...

网友评论

      本文标题:Go 学习:引用类型与值类型

      本文链接:https://www.haomeiwen.com/subject/wmjkwqtx.html