猿问

golang DeepEqual:当接口映射的值类型为数组时,DeepEqual失效

package main


import (

    "encoding/json"

    "fmt"

    "reflect"

)


func main() {

    nodeArray := map[string]interface{}{

        "meta": map[string]interface{}{

            "category": "paragraph"}, "content": []string{"111"}}

    // content is number as 111 or array


    b, _ := json.Marshal(&nodeArray)

    var nodeArrayTest map[string]interface{}

    json.Unmarshal(b, &nodeArrayTest)

    if !reflect.DeepEqual(nodeArray, nodeArrayTest) {

        fmt.Println("!!!! odeArray and nodeArrayTest should be equal")

    } else {

        fmt.Println("odeArray and nodeArrayTest equal")

    }

}

为什么当接口映射有数组(内容为数字为111或数组)时,DeepEqual的返回为false?当内容值为字符串、地图时,DeepEqual 为真。


慕妹3242003
浏览 182回答 2
2回答
随时随地看视频慕课网APP

相关分类

Go
我要回答