下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第Go語言使用字符串的幾個技巧分享一、字符串底層就是一個字節(jié)數(shù)組
這真的非常重要,而且影響著下面的其他幾個技巧。當(dāng)你創(chuàng)建一個字符串時,其本質(zhì)就是一個字節(jié)的數(shù)組。這意味著你可以像訪問數(shù)組一樣的訪問單獨(dú)的某個字節(jié)。例如,下面的代碼逐個打印字符串中的每個字節(jié)以及對應(yīng)字節(jié)數(shù)組中的每個字節(jié):
packagemain
import"fmt"
funcmain(){
str:="hello"
fori:=0;ilen(str);i++{
fmt.Printf("%b%s\n",str[i],string(str[i]))
}
這是一個很重要的知識,因此才有了第二個技巧。。。
二、使用字節(jié)數(shù)組或緩沖區(qū)可以提升字符串連接的速度
在Go語言中字符串是只讀的,這表示每次當(dāng)你使用str=str+"something"時,實(shí)際上創(chuàng)建了一個新的字符串對象。如果你尋求代碼的最高效率,這里應(yīng)該使用字節(jié)緩沖區(qū)來替代,例如:
packagemain
import(
"bytes"
"fmt"
funcmain(){
str:="something"
buf:=bytes.NewBufferString(str)
fori:=0;i1000;i++{
buf.Write([]byte(randomString()))
fmt.Println(buf.String())
funcrandomString()string{
ret:="pretend-this-is-random"
returnret
}
如果使用字節(jié)數(shù)組會進(jìn)一步提升上述代碼的效率,但你需要知道最終字符串的大小。一個直觀的例子就是Go語言中的left-pad實(shí)現(xiàn)。
三、你可以像拼接其他數(shù)組一樣拼接字符串
當(dāng)你需要截取字符串中的一部分時,可以使用像截取數(shù)組某部分那樣來操作,示例代碼:
packagemain
import"fmt"
funcmain(){
str:="XBodyContentX"
content:=str[1:len(str)-1]
fmt.Println(content)
}
四、使用`符號來創(chuàng)建多行字符串
這個相當(dāng)簡單,你希望在代碼中定義一個包含多行地址信息的字符串,那么你需要用到`這個字符,如下所示:
packagemain
import"fmt"
funcmain(){
str:=`Mr.Smith
123SomethingSt
SomeCity,CA94043`
fmt.Println(str)
}
五、你可以在字符串中嵌入Unicode字符
假設(shè)實(shí)現(xiàn)WebSocket通訊時,你需要讓傳輸?shù)臄?shù)據(jù)以0x00開始,以0xFF結(jié)束[源碼]
我們可以在任意字符串中通過如下代碼實(shí)現(xiàn):
packagemain
import"fmt"
funcmain(){
str:="\x00BodyContent\xff"
fmt.Println(str)
}
同樣的,你可以使用Unicode字符串來處理,或者也可以在字符串中使用原始字符。例如,下面的代碼都是有效的:
packagemain
import"fmt"
funcmain(){
a:="ay!"
b:="\u00FFay!"
fmt.Println(a,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年湖北中醫(yī)藥高等??茖W(xué)校單招綜合素質(zhì)筆試備考題庫含詳細(xì)答案解析
- 2026年蘇州信息職業(yè)技術(shù)學(xué)院單招職業(yè)技能考試備考題庫含詳細(xì)答案解析
- 2026年南昌工學(xué)院單招職業(yè)技能考試模擬試題含詳細(xì)答案解析
- 2026年懷化職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測試模擬試題及答案詳細(xì)解析
- 2026年常州紡織服裝職業(yè)技術(shù)學(xué)院單招綜合素質(zhì)考試備考試題含詳細(xì)答案解析
- 2026年內(nèi)蒙古北方職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測試備考試題及答案詳細(xì)解析
- 2026福建泉州市安溪金火完全中學(xué)招聘編外合同制教師2人參考考試試題及答案解析
- 2026河南中原再擔(dān)保集團(tuán)科技融資擔(dān)保有限公司招聘4人備考考試題庫及答案解析
- 個人職業(yè)發(fā)展規(guī)劃實(shí)戰(zhàn)指南
- 2026秋招:西藏甘露藏醫(yī)藥產(chǎn)業(yè)集團(tuán)試題及答案
- 2025版中國經(jīng)皮冠狀動脈介入治療指南課件
- 2025-2030撓性覆銅板FCCL行業(yè)市場深度調(diào)研及發(fā)展前景研究報告
- 解讀-2025年版《普通高中課程標(biāo)準(zhǔn)》化學(xué)解讀
- 2025全國注冊監(jiān)理工程師繼續(xù)教育必考題庫和答案
- 衣柜全屋定制設(shè)計方案
- ESG理論與實(shí)務(wù) 課件 第一章 ESG概述
- 食堂餐廳維修項目方案(3篇)
- 醫(yī)用手術(shù)器械講解
- 冰芯氣泡古大氣重建-洞察及研究
- DB37∕T 5031-2015 SMC玻璃鋼檢查井應(yīng)用技術(shù)規(guī)程
- 口腔腫瘤手術(shù)配合方案
評論
0/150
提交評論