美文网首页
Map和结构体

Map和结构体

作者: 该死的金箍 | 来源:发表于2024-01-07 20:10 被阅读0次

创建Map  【map是无序的】

map[key_type] value_type{
    key1:value1
    key2:value2
}


map1 := map[string]string{
    "a":"1",
    "b":"2",
    "c":"3",
    "d":"4"
}

添加
map1["e"] = "5" 

编辑
map1["a"] = "aa"

删除
delete(map1,)

用make创建map
map2 := make(map[string]string)//用make创建一个空map

验证指定的键值对是否存在于map中
map2 := make(map[string]int)//注意这里键的类型依然为字符串,但是值的类型不再是字符串,而是整数fmt.Println(map2 )
v,ok := map2 ["port"]//双赋值,变量v代表键对应的值,变量ok用来判断键"port"是否存在于map2 这个map中fmt.Println(v,ok)// 因为map2 为空map,因此v的值为0(整数的零值),ok为false,表示"port"这个键不存在map2 ["port"] = 48//向map2 里添加"port":48这个键值对
v,ok = map2 ["port"]//再次双赋值fmt.Println(v,ok)//此时v为48,ok为true,表示"port"这个键存在

如果不需要获取值  那么可以通过_ 屏蔽值
_,ok = map2["port"] 
fmt.Println(ok)

创建结构体 【 结构体的元素可以用多种数据类型  数组,切片,map,都只能是同一种类型 】

type routerstruct {
    Hostname string
    IP_address string
    Port int
    CPU_utilization float64
    Power_on bool
}

package main
import "fmt"
type routerstruct {
    Hostname string
    IP_address string
    Port int
    CPU_utilization float64
    Power_on bool
}

func main() {
    router1 :=router{"R1","192.168.2.11",8,11.1,true}//将接结构体router"实例化"给变量router1
    router2 :=router{"R2","192.168.2.12",8,22.2,false}//将接结构体router"实例化"给变量router2
    fmt.Println(router1)
    fmt.Println(router2)
    fmt.Println("Router1的主机名:", router1.Hostname)
    fmt.Println("Router1的IP地址:", router1.IP_address)
    fmt.Println("Router2的端口数量:", router2.Port)
    fmt.Println("Router2的CPU用量:", router2.CPU_utilization)
    fmt.Println("Router1的电源是否开启:", router2.Power_on)
}

用new()将结构体赋值给变量

router1 := new(router)//使用new()将结构体router"实例化"给router1
fmt.Println(router1)//&{ 0 0 false} 
router1.Hostname="R1"
router1.IP_address="192.168.2.11"
router1.Port=8
router1.CPU_utilization=11.1
router1.Power_on=true
fmt.Println(router1)// &{R1 192.168.2.11 8 11.1 true}
fmt.Println(*router1)//指针{R1 192.168.2.11 8 11.1 true}

相关文章

  • go day09 json

    通过结构体生成json struct_tag的使用 通过map生成json json解析到结构体 json解析到map

  • 切片、map转struct

    map to struct 切片转结构体

  • golang map的坑

    当结构体的某个成员是map类型, 结构体初始化后map需要单独初始化,否则对map的操作会“panic: assi...

  • 2018-03-10 STL

    优先队列结构体优先队列 set map

  • golang数据类型

    Go语言中有四种复合数据类型:数组,slice,map,结构体 数组和结构体都是聚合类型,长度固定。而slice和...

  • Map和结构体(JSON)对比

    直观感受 在nodejs中很少去关注每一种数据结构的性能和特点,今天正好遇到了这个问题就简单对比了一下,顺便做一个...

  • golang 创建结构体map

    定义结构体 map结构体赋值 这样在转换成json的时候就不会有下标

  • Go语言学习笔记10.复合类型-指针

    复合类型包括: pointer 指针array 数组slice 切片map 字典struct 结构体 指针 和C...

  • Go 专栏|复合数据类型:字典 map 和 结构体 struct

    原文链接: Go 专栏|复合数据类型:字典 map 和 结构体 struct[https://mp.weixin....

  • struct比较

    从下面代码可以看出:1、相同实例的可以比较,但不能含有不可比较的结构体成员(切片和map),可以强转为同一结构体的...

网友评论

      本文标题:Map和结构体

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