深圳寶安區(qū)什么時候解封網(wǎng)站優(yōu)化外包找誰
Go 獲取 URL 參數(shù)也很容易,但是由于 Go 有嚴格的數(shù)據(jù)類型和錯誤管理,所以在使用時會些微有些復雜。所以本文不僅會講如何獲取 URL 的參數(shù),也會講在使用時的一些問題。
首先假設 URL 是https://www.example.com/?keyword=abc&id=12
。
其他語言一般這個時候就是導入包了,但是 Go 的包管理很嚴格,所以建議你在輸入完下列代碼后,在安裝 VSCode 中使用保存快捷鍵(如 Command + S 鍵)或者在終端中goimports
工具來自動補全包,這樣就可以保證一定沒有錯誤。因為雖然現(xiàn)在一般使用"net/url"
或者"net/http"
,但某些情況可能不一樣,或者未來 Go 會對一些包進行改名,這都會導致包的名稱不一定,所以“授人以魚不如授人以漁”。
接下來需要使用url.Parse()
來解析上面的 URL,以及設置錯誤信息來方便 URL 解析出錯的時候進行處理,最后聲明變量q
來方便后續(xù)獲取和操作參數(shù):
u, err := url.Parse("https://www.example.com/?keyword=abc&id=12")
if err != nil {log.Fatal(err)
}
q := u.Query()
這里u.Query()
會進行一個映射,將參數(shù)名和值對應上,由于可能會有多個相同的參數(shù)名,所以這里的“鍵值對”的“值”是一個字符串數(shù)組。此時就可以通過q
來獲取參數(shù)了,如下:
fmt.Println(q["keyword"])
fmt.Println(q["id"])
輸出結(jié)果為:
[abc]
[12]
下面說說需要注意的幾個問題:
如何將參數(shù)字符串轉(zhuǎn)換成整數(shù)
上文提到這里的q["keyword"]
或q["id"]
實際上是個字符串數(shù)組,所以如果你想將上面id
的值12
當成整數(shù)進行操作,那么就得使用下面的方式(如果你有多個id
參數(shù)的話,那么就根據(jù)自己情況選擇):
id := strconv.Atoi(q["id"][0])
這時候變量id
的值就是整數(shù)12
。
判斷是否有參數(shù)或有某個參數(shù)
一般參數(shù)的使用方法就是用來計算或判斷,但是如果我們要判斷有沒有參數(shù)部分或者有沒有某個參數(shù)該怎么辦呢?
有兩種方案:
第一種是通過判斷q
或某個參數(shù)對應的值是否為空,如下:
//判斷是否有參數(shù)
if q != nil {...
}
//判斷是否有id這個參數(shù)
if q["id"] != nil {...
}
第二種是通過len()
測量q
或某個參數(shù)對應值的長度,如下:
//判斷是否有參數(shù)
if len(q) != 0 {...
}
//判斷是否有id這個參數(shù)
if len(q["id"]) != 0 {...
}
希望能幫到有需要的人~