Golang net/url

Golang标准库http/url Values

Posted by Ricky on February 22, 2019

前言

Golang标准库http/url Values

这个库里面 有两个方法非常类似,用的时候也比较模糊,虽然没出什么大问题,但是,golang作为一个高性能语言,怎么可能出现两个功能相同的方法呢? 于是乎,简单的测试了一下,总算搞清楚了 分别是Add方法和Set方法


    package main
    
    import (
    	_ "app/core/testutil"
    	"log"
    	"net/url"
    )
    
    func main() {
    	data := url.Values{}
    	data.Add("qkey", "150032-SH1672384")
    	data.Add("qdate", "2019-01-14")
    	log.Println(data)
    	// 先用Add方法 打印结果
    	data.Add("qdate", "33333")
    	log.Println(data)
    }

//打印结果
map[qkey:[150032-SH1672384] qdate:[2019-01-14]]
map[qkey:[150032-SH1672384] qdate:[2019-01-14 33333]]

意思就是追加与原有的key后面呗:Set方法将key对应的值集设为只有value,它会替换掉已有的值集。


    package main
    
    import (
    	_ "app/core/testutil"
    	"log"
    	"net/url"
    )
    
    func main() {
    	data := url.Values{}
    	data.Add("qkey", "150032-SH1672384")
    	data.Add("qdate", "2019-01-14")
    	log.Println(data)
    	
    	// 换成Set方法再试
    	data.Set("qdate", "33333")
    	log.Println(data)
    }



//打印结果
map[qkey:[150032-SH1672384] qdate:[2019-01-14]]
map[qkey:[150032-SH1672384] qdate:[33333]]

意思就是覆盖原有key的值呗:Add将value添加到key关联的值集里原有的值的后面。