小编给大家分享一下golang如何使用MarshalText支持非字符串作为key的map,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
使用 MarshalText支持非字符串作为key的map
虽然 JSON 标准里只支持 string 作为 key 的 map。但是 golang 通过 MarshalText()
接口,使得其他类型也可以作为 map 的 key。例如
f, _, _ := big.ParseFloat("1", 10, 64, big.ToZero)
val := map[*big.Float]string{f: "2"}
str, err := MarshalToString(val)
should.Equal(`{"1":"2"}`, str)
其中 big.Float 就实现了 MarshalText()
看完了这篇文章,相信你对“golang如何使用MarshalText支持非字符串作为key的map”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网行业资讯频道,感谢各位的阅读!