go语言之map取值

package main

import (
    "fmt"
)

func main() {
    //定义一个map
    temp_dict := make(map[string]string)
    temp_dict["A"] = "A__value"

    //1获取某一个key的值
    //1.1 两个返回值
    r1_value, r1_exisit := temp_dict["A"]
    fmt.Printf("A 存在  r1_value = %s, r1_exisit = %t\n", r1_value, r1_exisit)
    r2_value, r2_exisit := temp_dict["E"]
    fmt.Printf("E 不存在  r2_value = %s, r2_exisit = %t\n", r2_value, r2_exisit)
    /*
            A 存在    r1_value = A__value,  r1_exisit = true
            E 不存在  r2_value = ,          r2_exisit = false
            总结,两只返回值接收的时候,第一个返回值=value   第二个返回值=是否存在
    */

    //1.2 一个返回值
    r3_value := temp_dict["A"]
    fmt.Printf("A 存在 返回值r3_value: %s\n", r3_value)
    r4_value := temp_dict["E"]
    fmt.Printf("E 存在 返回值r4_value: %s\n", r4_value)
    /*
        A  存在     r3_value = A__value
        E  不存在    r4_value = ''
        总结:一个返回值接收的时候,返回值=值
    */

    // WARNING,看下面的例子
    warn_arr := make(map[string]bool)
    warn_arr["A"] = true
    warn_arr["B"] = false

    // 你如果判断value,则取值value 则使用  返回一值
    // 你如果相判断key是否存在,则使用  返回两值

    for _, key := range [3]string{"A", "B", "C"} {
        r5_value, r5_exisit := warn_arr[key]
        r6_value := warn_arr[key]
        fmt.Printf("两种返回值  %s存在=%t %s值=%t\n", key, r5_exisit, key, r5_value)
        fmt.Printf("一种返回值  %s值=%t\n", key, r6_value)
    }
    /*
        两种返回值  A存在=true A值=true
        一种返回值  A值=true
        两种返回值  B存在=true B值=false
        一种返回值  B值=false
        两种返回值  C存在=false C值=false
        一种返回值  C值=false
        总结:如果不存在直接取值,则返回是值类型的特殊值  False '' 0
    */

}

 

posted @ 2024-07-02 13:44    阅读(5)  评论(0编辑  收藏  举报