"" 與 `` 包裹字符串的區(qū)別
解析:
- 使用
"" 包裹的字符串 會(huì)解析 字符串中的 轉(zhuǎn)義符
- 使用
`` 包裹的字符串 不會(huì)解析 字符串中的 轉(zhuǎn)義符
性能:
- 使用
"" 包裹的字符串 性能 比較慢 到 極慢(由 轉(zhuǎn)義符 和 字符串的長度 決定)
- 使用
`` 包裹的字符串 性能 極快
說明:
-
字符串 實(shí)際上是 字符數(shù)組(學(xué)過 其他編程語言 的可能都知道,據(jù)我所知 GoLang 的書籍都 沒講過 或 沒重點(diǎn)講)
-
解析 會(huì) 遍歷 整一個(gè) 字符串 (字符數(shù)組),尋找可以 解析 的 轉(zhuǎn)義符,不管 原先字符串里 有沒有 轉(zhuǎn)義符,都會(huì) 遍歷一次
-
不解析 則會(huì) 直接輸出
測試用的代碼實(shí)例
package main
import "time"
func main() {
str1 := "" // 用于保存 "" 包裹的字符串
str2 := `` // 用于保存 `` 包裹的字符串
timer := 1000 // 統(tǒng)一循環(huán)次數(shù)
i := timer // 計(jì)數(shù)器
t1 := time.Now().UnixNano()
for i > 0 {
str1 += "測試\n測試\n測試\n測試\n測試\n測試\n"
// str1 += "測試測試測試測試測試測試測試"
i--
}
t2 := time.Now().UnixNano()
println(`"" 所消耗的時(shí)間:`, t2-t1)
i = timer // 重置計(jì)數(shù)器
t3 := time.Now().UnixNano()
for i > 0 {
str2 += `測試` + "\n" + `測試` + "\n" + `測試` + "\n" +
`測試` + "\n" + `測試` + "\n" + `測試` + "\n"
// str2 += `測試測試測試測試測試測試測試`
i--
}
t4 := time.Now().UnixNano()
println("`` 所消耗的時(shí)間:", t4-t3)
}
雙方有轉(zhuǎn)義符要轉(zhuǎn)譯的情況下 - 輸出結(jié)果:
"" 所消耗的時(shí)間: 4986900
`` 所消耗的時(shí)間: 1996200
雙方?jīng)]有轉(zhuǎn)義符要轉(zhuǎn)譯的情況下 - 輸出結(jié)果:
"" 所消耗的時(shí)間: 3988900
`` 所消耗的時(shí)間: 1994300
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。