09 golang byterune分秒語言基本數(shù)據(jù)類型_第1頁
09 golang byterune分秒語言基本數(shù)據(jù)類型_第2頁
09 golang byterune分秒語言基本數(shù)據(jù)類型_第3頁
09 golang byterune分秒語言基本數(shù)據(jù)類型_第4頁
09 golang byterune分秒語言基本數(shù)據(jù)類型_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

語言基本數(shù)據(jù)類 語言基本數(shù)據(jù)類(IT營我的專欄:https:///category-79-1、Golang數(shù)據(jù)類型介 2、整 3、浮點(diǎn) 4、布爾 5、字符 6、byte和rune類 7、修改字符 1、Golang數(shù)據(jù)類型介 語言中數(shù)據(jù)類型分為:基本數(shù)據(jù)類型和復(fù)合數(shù)據(jù)基本數(shù)據(jù)類型有整型、浮點(diǎn)型、布爾型、字復(fù)合數(shù)據(jù)類型有數(shù)組、切片、結(jié)構(gòu)體、函數(shù)、map、通道(channel)、接口等2、整整型分為以下兩個(gè)大類有符號(hào)整形按長度分為:int8、int16、int32、對應(yīng)的無符號(hào)整型:uint8、uint16、uint32、關(guān)于字字節(jié)也叫Byte,是計(jì)算機(jī)數(shù)據(jù)的基本存儲(chǔ)單位。8bit(位)=1Byte(字節(jié))1024Byte(字節(jié) 。在電腦里一個(gè)中文字是占兩個(gè)字節(jié)特殊整關(guān)于字字節(jié)也叫Byte,是計(jì)算機(jī)數(shù)據(jù)的基本存儲(chǔ)單位。8bit(位)=1Byte(字節(jié))1024Byte(字節(jié) 。在電腦里一個(gè)中文字是占兩個(gè)字節(jié)特殊整可能在不同平臺(tái)上的差異注意事項(xiàng):mapint來表示。在涉及intuintpackagemainimport()funcmain()varnumint64num=123fmt.Printf("值:%v類型%T",num,}類描32位操作系統(tǒng)上就是uint32,64位操作系統(tǒng)上就是32位操作系統(tǒng)上就是int32,64位操作系統(tǒng)無符號(hào)整型,用于存放一個(gè)類范占用空有無符(-128到 -2^7到2^7-有(-32768到 -2^15到2^15-2有(-2147483648到 -2^31到2^31-4有(-9223372036854775808-2^632^63-8有(0到 0到2^8-無(0到 0到2^16-無(0到 0到2^32-無(0到 0到2^64-8無)int不同)int不同長度直接的轉(zhuǎn)數(shù)字字面量語法(Numberliteralssyntax)(了解 版本之后引入了數(shù)字字面量語法,這樣便于開發(fā)者以二進(jìn)制、八進(jìn)制或十六點(diǎn)數(shù)的格式定義數(shù)字,例如代表二進(jìn)制v:=packagemainimport()funcmain()varnum1int8num1=127num2:=fmt.Printf("值:%v類型%T",num2,num2)//值:127}packageimport)funcmain()varaint8=120fmt.Printf("%T\n",a)}377255v0x1p-2377255v0x1p-21220.25且還允許我們用_v123_456123456我們可以借助fmt函數(shù)來將一個(gè)整數(shù)以不同進(jìn)制形式展示func//a=10fmt.Printf("%d\n",a)//fmt.Printf("%bn"a) //八進(jìn)制0b=fmt.Printf("%o\n",b)////十六進(jìn)制0xc=fmt.Printf("%x\n",c)//fffmt.Printf("%X\n",c)//FF}參考3、浮點(diǎn)Go語言支持兩種浮點(diǎn)型數(shù):參考3、浮點(diǎn)Go語言支持兩種浮點(diǎn)型數(shù):float32float64。這兩種浮點(diǎn)型數(shù)據(jù)格式遵循IEEE754float32的浮點(diǎn)數(shù)的最大范圍約為3.4e38,可以使用常量定義:math.MaxFloat32。的浮點(diǎn)數(shù)的最大范圍約1.8e308,可以使用一個(gè)常量定義:math.MaxFloat64打印浮點(diǎn)數(shù)時(shí),可以使fmt包配合動(dòng)詞%f,代碼如下Go語言中浮點(diǎn)數(shù)默Golangfloat精度丟失問幾乎所有的編程語言都有精度丟失這個(gè)問題,這是典型的二進(jìn)制浮點(diǎn)數(shù)精度損失問題,在長條件下,二進(jìn)制小數(shù)和十進(jìn)制小數(shù)互轉(zhuǎn)可能有精度丟vardfloat64=fmt.Println((d*100))//d:=fmt.Println((d* //num:=fmt.Printf("值:%v--類型:%T",num,num)//值:1.1--類型packagemainimport()funcmain()fmt.Printf("%f\n", fmt.Printf("%.2f\n", }使用第三方包來解決精度損失問題使用第三方包來解決精度損失問題Golang科學(xué)計(jì)數(shù)法表示浮點(diǎn)類4、布爾Go語言中以bool類型進(jìn)行聲明布爾型數(shù)據(jù),布爾型數(shù)據(jù)只值注意布爾類型變量的默認(rèn)值為false 語言中不允許將整型強(qiáng)制轉(zhuǎn)換為布爾型布爾型無法參與數(shù)值運(yùn)算,也無法與其他類型進(jìn)行轉(zhuǎn)換packagemainimport()funcmain()varb=fmt.Println(b占用字節(jié):",}num8:=5.1234e2//?5.1234*102num9:=5.1234E2//?5.1234*102shift+alt+向下的箭頭num10:=5.1234E-2//?5.1234/102次方0.051234fmt.Println("num8=",num8,"num9=",num9,"num10=",m1:=m2:=fmt.Println(m1-m2)//4.45、字符Go語言中的字符串以原生數(shù)據(jù)類型出現(xiàn),使用字符串就像使用5、字符Go語言中的字符串以原生數(shù)據(jù)類型出現(xiàn),使用字符串就像使用其他原生數(shù)據(jù)類型(intbool、float32、float64等)GoUTF-8為雙引號(hào)(")中的內(nèi)容,可以在Go語言的源碼中直接添加非ASCII碼字符,例如:字符串轉(zhuǎn) 語言的字符串常見轉(zhuǎn)義符包含回車、換行、單雙引號(hào)、制表符等,如下表所示舉個(gè)例子,我們要打印一個(gè)Windows平臺(tái)下的一個(gè)文件路徑多行字符 語言中要定義一個(gè)多行字符串時(shí),就必須使用反引號(hào)字符s1`第一行packageimport)funcmain()fmt.Println("str:=}轉(zhuǎn)義含回車符(返回行首換行符(直接跳到下一行的同列位置制表單引雙引反斜s1:="hello"s2:="你好字符串的常用操len(str)求字符串的長拼接字strings.Split分割字varstr字符串的常用操len(str)求字符串的長拼接字strings.Split分割字varstr="123-456-varstr1="你好"varstr2="golang"fmt.Println(str1+varstr3=fmt.Sprintf("%v%v",str1,str2)varstr="thisisstr"方介求長+拼接字符分判斷是否包前綴/后綴判子串出現(xiàn)的位join第三反引號(hào)間換行將被作為字符串中的換行,但是所有的轉(zhuǎn)義字符均無效,文本將會(huì)原樣輸出拼接字判斷首字符尾字母是否拼接字判斷首字符尾字母是否包含指定字判斷字符串出現(xiàn)的位Joinvarstr="123-456-vararr=strings.Split(str,"-")varstr2=strings.Join(arr,"*")varstr="thisisvarindex=strings.Index(str,"is") varstr="thisisvarindex=strings.LastIndex(str,"is") varstr="thisisvarflag=strings.HasPrefix(str,"this")varstr="thisisvarflag=strings.HasSuffix(str,"go")varstr="thisisvarflag=strings.Contains(str,"golang")vararr=strings.Split(str,"-")6、byterune類組成每個(gè)字符串的元素叫做“6、byterune類組成每個(gè)字符串的元素叫做“字符”,可以通過遍歷字符串元素獲得字包裹起來,如字符用單引號(hào)字節(jié)(byte):是計(jì)算機(jī)中數(shù)據(jù)處理的基本單位,習(xí)慣上用大8bit(位字符:是指計(jì)算機(jī)中使用的字母、數(shù)字、一個(gè)漢子占用3個(gè)字節(jié)一個(gè)字母占用一個(gè)字Go語言的字符有以下兩種uint8byteASCIIruneUTF-8當(dāng)需要處理中文、日文或者其他復(fù)合字符時(shí),則需要用int32rune類型。類型實(shí)際是一GoruneUnicodeUnicodebytea:="m"fmt.Println(len(a))//1b:="張"fmt.Println(len(b3packagemainimport"fmt"funcmain()a:=b:=//如果我們要輸出這個(gè)字符,需要格式化fmt.Printf("%c--%c",a, }輸出104(h)101(e)108(l)108(l)輸出104(h)101(e)108(l)108(l)111(o)32()229(?)188(?)160()228(?)184(?)104(h)101(e)108(l)108(l)111(o)32()24352(張)19977(三UTF8編碼下一個(gè)中文漢字由3個(gè)字節(jié)組成,所以我們不能簡單的按照字節(jié)去遍歷一包含中文的字符串,否則就會(huì)出現(xiàn)上面輸出中第一行的結(jié)果byte數(shù)組,所以可以和[]bytebytebyteruneutf8rune字符由一個(gè)或byte組成rune類型實(shí)際是一個(gè)7、修改字符要修改字符串,需要先將其轉(zhuǎn)換成 或[]byte,完成后再轉(zhuǎn)換為string。無論哪種轉(zhuǎn)換都會(huì)重新分配內(nèi)存,并復(fù)制字節(jié)數(shù)組c3營c4營fmt.Printf("C3的類型%T--C4的類型%T",c3,c4)//C3string--C4//packageimportfuncmain()s:=

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論