1. <nobr id="easjo"><address id="easjo"></address></nobr>

      <track id="easjo"><source id="easjo"></source></track>
      1. 
        

      2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
      3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>
          貴州做網站公司
          貴州做網站公司~專業!靠譜!
          10年網站模板開發經驗,熟悉國內外開源網站程序,包括DEDECMS,WordPress,ZBlog,Discuz! 等網站程序,可為您提供網站建設,網站克隆,仿站,網頁設計,網站制作,網站推廣優化等服務。我們專注高端營銷型網站,企業官網,集團官網,自適應網站,手機網站,網絡營銷,網站優化,網站服務器環境搭建以及托管運維等。為客戶提供一站式網站解決方案?。?!

          計算機str什么意思(go語言中str指的是什么)

          來源:互聯網轉載 時間:2024-05-12 04:32:02

          在go語言中,str指的是“字符串”,是一個不可改變的字節序列。字符串可以包含任意的數據,但是通常是用來包含可讀的文本,字符串是 UTF-8 字符的一個序列(當字符為 ASCII 碼表上的字符時則占用 1 個字節,其它字符根據需要占用 2-4 個字節)。字符串是一種值類型,且值不可變,即創建某個文本后將無法再次修改這個文本的內容,更深入地講,字符串是字節的定長數組。

          在go語言中,str指的是“字符串”。

          一個字符串是一個不可改變的字節序列,字符串可以包含任意的數據,但是通常是用來包含可讀的文本,字符串是 UTF-8 字符的一個序列(當字符為 ASCII 碼表上的字符時則占用 1 個字節,其它字符根據需要占用 2-4 個字節)。

          Go語言中字符串的內部實現使用 UTF-8 編碼,通過 rune 類型,可以方便地對每個 UTF-8 字符進行訪問。當然,Go語言也支持按照傳統的 ASCII 碼方式逐字符進行訪問。

          UTF-8 是一種被廣泛使用的編碼格式,是文本文件的標準編碼,其中包括 XML 和 JSON 在內也都使用該編碼。由于該編碼對占用字節長度的不定性,在Go語言中字符串也可能根據需要占用 1 至 4 個字節,這與其它編程語言如 C++、Java 或者 Python 不同(Java 始終使用 2 個字節)。Go語言這樣做不僅減少了內存和硬盤空間占用,同時也不用像其它語言那樣需要對使用 UTF-8 字符集的文本進行編碼和解碼。

          字符串是一種值類型,且值不可變,即創建某個文本后將無法再次修改這個文本的內容,更深入地講,字符串是字節的定長數組。

          定義字符串

          可以使用雙引號""來定義字符串,字符串中可以使用轉義字符來實現換行、縮進等效果,常用的轉義字符包括:

          • \n:換行符

          • \r:回車符

          • \t:tab 鍵

          • \u 或 \U:Unicode 字符

          • \\:反斜杠自身

          packagemainimport("fmt")funcmain(){varstr="本站\nGo語言教程"fmt.Println(str)}

          運行結果為:

          一般的比較運算符(==、!=、<、<=、>=、>)是通過在內存中按字節比較來實現字符串比較的,因此比較的結果是字符串自然編碼的順序。字符串所占的字節長度可以通過函數 len() 來獲取,例如 len(str)。

          字符串的內容(純字節)可以通過標準索引法來獲取,在方括號[ ]內寫入索引,索引從 0 開始計數:

          • 字符串 str 的第 1 個字節:str[0]

          • 第 i 個字節:str[i - 1]

          • 最后 1 個字節:str[len(str)-1]

          需要注意的是,這種轉換方案只對純 ASCII 碼的字符串有效。

          注意:獲取字符串中某個字節的地址屬于非法行為,例如 &str[i]。

          字符串拼接符“+”

          兩個字符串 s1 和 s2 可以通過 s := s1 + s2 拼接在一起。將 s2 追加到 s1 尾部并生成一個新的字符串 s。

          可以通過下面的方式來對代碼中多行的字符串進行拼接:

          str:="Beginningofthestring"+"secondpartofthestring"

          提示:因為編譯器會在行尾自動補全分號,所以拼接字符串用的加號“+”必須放在第一行末尾。

          也可以使用“+=”來對字符串進行拼接:

          s:="hel"+"lo,"s+="world!"fmt.Println(s)//輸出“hello,world!”

          定義多行字符串

          在Go語言中,使用雙引號書寫字符串的方式是字符串常見表達方式之一,被稱為字符串字面量(string literal),這種雙引號字面量不能跨行,如果想要在源碼中嵌入一個多行字符串時,就必須使用`反引號,代碼如下:

          conststr=`第一行第二行第三行\r\n`fmt.Println(str)

          代碼運行結果:

          反引號`,是鍵盤上 1 鍵左邊的鍵,兩個反引號間的字符串將被原樣賦值到 str 變量中。

          在這種方式下,反引號間換行將被作為字符串中的換行,但是所有的轉義字符均無效,文本將會原樣輸出。

          多行字符串一般用于內嵌源碼和內嵌數據等,代碼如下:

          constcodeTemplate=`//Generatedbygithub.com/davyxu/cellnet/protoc-gen-msg//DONOTEDIT!{{range.Protos}}//Source:{{.Name}}{{end}}package{{.PackageName}}{{ifgt.TotalMessages0}}import("github.com/davyxu/cellnet""reflect"_"github.com/davyxu/cellnet/codec/pb"){{end}}funcinit(){{{range.Protos}}//{{.Name}}{{range.Messages}}cellnet.RegisterMessageMeta("pb","{{.FullName}}",reflect.TypeOf((*{{.Name}})(nil)).Elem(),{{.MsgID}}){{end}}{{end}}}

          這段代碼只定義了一個常量 codeTemplate,類型為字符串,使用`定義,字符串的內容為一段代碼生成中使用到的 Go 源碼格式。

          `間的所有代碼均不會被編譯器識別,而只是作為字符串的一部分。

          字符串字面量

          在Go語言中,字符串字面量是通過兩種不同的方式創建的:

          • 使用雙引號(""):在這里,字符串字面量使用雙引號("")創建。此類字符串支持轉義字符,如下表所示,但不跨越多行。這種類型的字符串文字在Golang程序中被廣泛使用。

          轉義符描述
          \\反斜杠(\)
          \000具有給定的3位8位八進制代碼點的Unicode字符
          \’單引號(')。僅允許在字符文字中使用
          \”雙引號("")。僅允許在解釋的字符串文字中使用
          \aASCII鈴聲(BEL)
          \bASCII退格鍵(BS)
          \fASCII換頁(FF)
          \nASCII換行符(LF)
          \rASCII回車(CR)
          \tASCII標簽(TAB)
          \uhhhh具有給定的4位16位十六進制代碼點的Unicode字符。

          具有給定的8位32位十六進制代碼點的Unicode字符。
          \vASCII垂直制表符(VT)
          \xhh具有給定的2位8位十六進制代碼點的Unicode字符。
          • 使用反引號(''):此處,字符串文字是使用反引號('')創建的,也稱為raw literals(原始文本)。原始文本不支持轉義字符,可以跨越多行,并且可以包含除反引號之外的任何字符。通常,它用于在正則表達式和HTML中編寫多行消息。

          packagemainimport"fmt"funcmain(){//創建并初始化//帶有字符串文字的變量//使用雙引號My_value_1:="Welcometonhooo"//添加轉義字符My_value_2:="Welcome!\nnhooo"//使用反引號My_value_3:=`Hello!nhooo`//添加轉義字符//原始文本My_value_4:=`Hello!\nnhooo`//顯示fmt.Println("String1:",My_value_1)fmt.Println("String2:",My_value_2)fmt.Println("String3:",My_value_3)fmt.Println("String4:",My_value_4)}

          輸出:

          關于字符串的要點

          • 字符串是不可變的:在Go語言中,一旦創建了字符串,則字符串是不可變的,無法更改字符串的值。換句話說,字符串是只讀的。如果嘗試更改,則編譯器將引發錯誤。

          //字符串是不可變的packagemainimport"fmt"funcmain(){//創建和初始化字符串//使用簡寫聲明mystr:="Welcometonhooo"fmt.Println("String:",mystr)/*果你試圖改變字符串的值,編譯器將拋出一個錯誤,例如,cannotassigntomystr[1]mystr[1]='G'fmt.Println("String:",mystr)*/}

          輸出:

          • 如何遍歷字符串?:您可以使用for range循環遍歷字符串。此循環可以在Unicode代碼點上迭代一個字符串。

          語法:

          forindex,chr:=rangestr{//語句..}

          在這里,索引是存儲UTF-8編碼代碼點的第一個字節的變量,而chr是存儲給定字符串的字符的變量,str是字符串。

          //遍歷字符串//使用for范圍循環packagemainimport"fmt"funcmain(){//字符串作為for循環中的范圍forindex,s:=range"nhooo"{fmt.Printf("%c索引值是%d\n",s,index)}}

          輸出:

          • 如何訪問字符串的單個字節?:字符串是一個字節,因此,我們可以訪問給定字符串的每個字節。

          //訪問字符串的字節packagemainimport"fmt"funcmain(){//創建和初始化一個字符串str:="Welcometonhooo"//訪問給定字符串的字節forc:=0;c<len(str);c++{fmt.Printf("\n字符=%c字節=%v",str[c],str[c])}}

          • 如何從切片創建字符串?:在Go語言中,允許您從字節切片創建字符串。

          //從切片創建一個字符串packagemainimport"fmt"funcmain(){//創建和初始化一個字節片myslice1:=[]byte{0x47,0x65,0x65,0x6b,0x73}//從切片創建字符串mystring1:=string(myslice1)//顯示字符串fmt.Println("String1:",mystring1)//創建和初始化一個符文切片myslice2:=[]rune{0x0047,0x0065,0x0065,0x006b,0x0073}//從切片創建字符串mystring2:=string(myslice2)//顯示字符串fmt.Println("String2:",mystring2)}

          • 如何查找字符串的長度?:在Golang字符串中,可以使用兩個函數(一個是len(),另一個是RuneCountInString())來找到字符串的長度。UTF-8包提供了RuneCountInString()函數,該函數返回字符串中存在的符文總數。len()函數返回字符串的字節數。

          //查找字符串的長度packagemainimport("fmt""unicode/utf8")funcmain(){//創建和初始化字符串//使用簡寫聲明mystr:="Welcometonhooo??????"//查找字符串的長度//使用len()函數length2:=len(mystr)//使用RuneCountInString()函數length3:=utf8.RuneCountInString(mystr)//顯示字符串的長度fmt.Println("string:",mystr)fmt.Println("Length1:",length2)fmt.Println("Length2:",length3)}

          到此,相信大家對“go語言中str指的是什么”有了更深的了解,不妨來實際操作一番吧!這里是本站網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

          c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...

          2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...

          :喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...

          趨勢選股系統股票工具數據整理,截至2023年3月23日,輔助生殖概念股票成交額排名前十依次是:長春高新、沃森生物、迪安診斷、新華制藥、復星醫藥、通策醫療、思創醫惠、仙琚制藥、華大基因、翰宇藥業。NO.1、長春高新:9.4億元(相關資料圖)股票代碼:000661,公司所在地:吉林,所屬行業:生物制品3月24日上午收盤消息,長春高新(000661)漲0.63%,報167.630元,成交額9.4億元。N...

          (資料圖片)隨著社會越來越發達,大家都選擇在網絡上汲取相關知識內容,比如請問北京哪里有室內水上樂園,為了更好的解答大家的問題,小編也是翻閱整理了相應內容,下面就一起來看一下吧!1、水立方嬉水樂園,地址:朝陽區北四環中路奧林匹克公園內。2、摩銳水世界,地址:朝陽區東葦路金盞郁金香花園。3、藍月爾水世界,地址:北京市豐臺區宋家莊路撲滿山對面首開福茂。4、英達海灘水世界,地址:北京市昌平區阿牛路富順六環...

          (相關資料圖)在生活中,很多人都不知道循環小數的概念是法則的是什么意思,其實他的意思是非常簡單的,下面就是小編搜索到的循環小數的概念是法則的相關的一些知識,我們一起來學習下吧!循環小數,是從小數部分的某一位起,一個數字或幾個數字,依次不斷地重復出現的小數。在數的分類中,循環小數屬于有理數。兩數相除,如果得不到整數商,會有兩種情況:一種,得到有限小數。一種,得到無限小數。從小數點后某一位開始依次不斷...

          TOP
          国产初高中生视频在线观看|亚洲一区中文|久久亚洲欧美国产精品|黄色网站入口免费进人
          1. <nobr id="easjo"><address id="easjo"></address></nobr>

              <track id="easjo"><source id="easjo"></source></track>
              1. 
                

              2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
              3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>