zoukankan      html  css  js  c++  java
  • golang 中奇怪的空切片

    本文中介绍一个奇怪现象,一个空列表(或切片),却可以打印出列表中的内容。

    以下代码中,在一个json字符串中,定义一个列表,列表中有一个空字符串。

    接着,将json字符串解析到结构体中,最后,打印结构体中的字符串列表。

    package main
    
    
    import (
        "fmt"
        "encoding/json"
    )
    
    type Host struct {
        IPList []string
    }
    
    func main() {
    
        b := []byte(`{"IPList": [""]}`)
    
        h := Host{}
    
        err := json.Unmarshal(b, &h)
        if err != nil {
            fmt.Println("Umarshal failed:", err)
            return
        }
    
    
        fmt.Println("host:", h)
        fmt.Println("IPList:", h.IPList, ", len:", len(h.IPList))
        for _,ip := range h.IPList {
            fmt.Println("ip:", ip, ", len:", len(ip))
        }
    }
    

    output:

    host: {[]}
    IPList: [] , len: 1
    ip: , len: 0

    从输出可以看到,IPList是空列表,在遍历时,却可以打印出内容--空字符串。

    Just try, don't shy.
  • 相关阅读:
    最短路径问题/Spfa
    cddiv/数组维护
    cfdiv2/c/找规律
    Codeforces Round #343 (Div. 2)【A,B水题】
    POJ 2135_Farm Tour
    POJ 3469_Dual Core CPU
    POJ 3469_Dual Core CPU
    POJ 3281_Dining
    POJ 3281_Dining
    POJ 3041_Asteroids
  • 原文地址:https://www.cnblogs.com/lanyangsh/p/14398213.html
Copyright © 2011-2022 走看看