zoukankan      html  css  js  c++  java
  • go 中new 和 make 的区别

    1. new(T)返回的是指针,*T 指向T的零值(nil),并未初始化或叫实力化;


    2. make (T) 返回的是初始化后的T 对象,可以直接用,只能用于slice,map,channel。但注意它是引用类型,与python中可变类型相似。


    3. 值类型是int,string等类似于python的不可变类型。

    n := make(map[string]int)
    n1 := new(map[string]int)

    fmt.Println(n)   // map[]
    fmt.Println(&n) // &map[]
    fmt.Println(n1) // &map[]
    fmt.Println(*n1) // map[]
    fmt.Println("sssssssssssss")
    fmt.Printf("%#v ", n) //map[string]int{}
    fmt.Printf("%#v ", &n) // &map[string]int{}
    fmt.Printf("%#v ", n1) //&map[string]int(nil)
    fmt.Printf("%#v ", *n1) //map[string]int(nil)

    *n1 = map[string]int{}
    (*n1)["a"] = 4
    fmt.Println(*n1) // map[a:4]
    fmt.Println(n1) // &map[a:4]
    
    
  • 相关阅读:
    【Python爬虫】:模拟登录QQ空间
    Docker
    Git
    DevOps
    DevOps
    gRPC 简介
    tcpdump的使用
    Raft
    go-micro 简介
    Node
  • 原文地址:https://www.cnblogs.com/kevin-red-heart/p/14522810.html
Copyright © 2011-2022 走看看