第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

給定兩個(gè)絕對 URI,找到它們之間的相對路徑

給定兩個(gè)絕對 URI,找到它們之間的相對路徑

Go
慕沐林林 2023-04-04 14:33:32
go 標(biāo)準(zhǔn)庫中是否有一個(gè)函數(shù)可以讓我這樣做a = 'www.my.com/your/stuff'b = 'www.my.com/your/stuff/123/4'function(b,a) // /123/4 或者function(URL(b),URL(a)) // /123/4在這種情況下可能定義了以下內(nèi)容function(a,b) // error ? or ../../我知道我可以path為此使用包。但在很多情況下,如果有查詢參數(shù)、文件擴(kuò)展名等,它就無法工作?;旧衔艺趯ふ襭ath.resolveURL 的對應(yīng)物
查看完整描述

1 回答

?
蕪湖不蕪

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超7個(gè)贊

事實(shí)證明,這個(gè)path/filepath包可以為你做這件事。如果您忽略這些是 URL 的事實(shí),而是將它們視為路徑,您可以使用filepath.Rel()

package main


import (

? ? "fmt"

? ? "path/filepath"

)


func main() {

? ? base := "www.my.com/your/stuff"

? ? target := "www.my.com/your/stuff/123/4"

? ? rel, _ := filepath.Rel(base, target)

? ? fmt.Println(rel) // prints "123/4"

}

如果您想將這些路徑視為實(shí)際 URL,您可能應(yīng)該使用該net/url包首先將路徑解析為 URL,然后提取路徑并filepath.Rel()在其上使用。這使您可以正確處理 URL 字符串中的查詢之類的問題,這些問題會(huì)出錯(cuò)filepath,如下所示:

package main


import (

? ? "fmt"

? ? "path/filepath"

? ? "net/url"

)


func main() {

? ? url1, _ := url.Parse("http://www.my.com/your/stuff")

? ? url2, _ := url.Parse("http://www.my.com/your/stuff/123/4?query=test")


? ? base := url1.Path

? ? target := url2.Path


? ? rel, _ := filepath.Rel(base, target)

? ? fmt.Println(base)? ?// "/your/stuff"

? ? fmt.Println(target) // "/your/stuff/123/4"

? ? fmt.Println(rel)? ? // "123/4"

}

作為獎(jiǎng)勵(lì),filepath.Rel()它也足夠聰明來處理另一個(gè)方向的相對路徑:

rel,?_?=?filepath.Rel(target,?base)?//?rel?is?now?"../.."


查看完整回答
反對 回復(fù) 2023-04-04
  • 1 回答
  • 0 關(guān)注
  • 126 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)