新聞中心
Go中字符串的遍歷
首先說一下go中的字符串類型:
成都創(chuàng)新互聯(lián)從2013年創(chuàng)立,先為沽源等服務(wù)建站,沽源等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為沽源企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
字符串就是一串固定長度的字符連接起來的字符序列。Go的字符串是由單個字節(jié)連接起來的。Go語言的字符串的字節(jié)使用UTF-8編碼標識Unicode文本。
下面介紹字符串的三種遍歷方式,根據(jù)實際情況選擇即可。
該遍歷方式==缺點==:遍歷是按照字節(jié)遍歷,因此如果有中文等非英文字符,就會出現(xiàn)亂碼,比如要遍歷"abc北京"這個字符串,效果如下:
可見這不是我們想要的效果,根據(jù)utf-8中文編碼規(guī)則,我們要str[3]str[4]str[5]三個字節(jié)合起來組成“北”字及 str[6]str[7]str[8]合起來組成“京”字。由此引出下面第二種遍歷方法。
該方式是按照字符遍歷的,所以不會出現(xiàn)亂碼,如下:
運行結(jié)果:
從圖中可以看到第二個漢子“京”的開始下標是6,直接跳過了4和5,可見確實依照utf8編碼方式將三個字節(jié)組合成了一個漢字,str[3]-str[5]組合成“北”字,str[6]-str[8]組合成了“京”字。
由于下標的不確定性,所以引出了下面的遍歷方式。
1 可以先將字符串轉(zhuǎn)成 []rune 切片
2 再用常規(guī)方法進行遍歷
運行效果:
由此可見下標是按1遞增的,沒有產(chǎn)生跳躍現(xiàn)象。
go語言如何將時間轉(zhuǎn)化為字符串String類型
如果你想輸出的時間是YYYY-MM-DD的話
要在使用json數(shù)據(jù)化之前自己處理時間
type Article struct { Id int Title string CreateTimeStr string}
然后要將之前的時間轉(zhuǎn)過來
Article.CreateTimeStr = Createdatetime.Format("2006-01-02")
最后序列化JSON就是YYYY-MM-DD
這是最簡單的方法
golang原生數(shù)據(jù)類型
golang原生數(shù)據(jù)類型:按長度:int8(-128-127)、int16、int32、int64。
布爾型:布爾型的值只可以是常量true或者false。一個簡單的例子:varbbool=true。
數(shù)字類型:整型int和浮點型float32、float64,Go語言支持整型和浮點型數(shù)字,并且支持復(fù)數(shù),其中位的運算采用補碼。
字符串類型:字符串就是一串固定長度的字符連接起來的字符序列。Go的字符串是由單個字節(jié)連接起來的。Go語言的字符串的字節(jié)使用UTF-8編碼標識Unicode文本。
派生類型:包括:(a)指針類型(Pointer)(b)數(shù)組類型?結(jié)構(gòu)化類型(struct)(d)Channel類型(e)函數(shù)類型(f)切片類型(g)接口類型(interface)(h)Map類型。
文章標題:go語言-字符串類型 go 字符串連接
網(wǎng)頁路徑:http://ef60e0e.cn/article/ddsgcdo.html