亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Go語言中的基礎數據類型如何使用

發布時間:2023-05-09 14:43:53 來源:億速云 閱讀:244 作者:iii 欄目:開發技術

這篇文章主要介紹了Go語言中的基礎數據類型如何使用的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Go語言中的基礎數據類型如何使用文章都會有所收獲,下面我們一起來看看吧。

基礎數據類型

整型

Go中整型數據類型主要分為

  • 有符號整型

  • 無符號整型

  • 特殊整型

有符號整型

  • int8: 8位(-128 ~ 127)

  • int16: 16位(-32768 ~ 32767)

  • int32: 32位(-2147483648 ~ 214748347)

  • int64: 64位(-9223372036854775808 ~ 9223372036854775807)

var a int8
var b int16
var c int32
var d int64

無符號整型

  • uint8: 8位(0 ~ 255)

  • uint16: 16位(0 ~ 65535)

  • uint32: 32位(0 ~ 4294967295)

  • uint64: 64位(0 ~ 18446744073709551615)

var a uint8
var b uint16
var c uint32
var d uint64

特殊整型

  • uint: 在32位操作系統上就是unit32,64位操作系統上就是uint64

  • int: 在32位操作系統上就是int32,64位操作系統上就是int64

  • unitptr: 無符號整型,用于存放一個指針

var a unit
var b int
var c unitptr

Go中也可以使用數字字面量語法

  • 0b開頭的代表二進制

  • 0o開頭的代表八進制

  • 0x開頭的代表十六進制

浮點型

Go中支持的浮點型有兩種

  • float32

  • float64

var a float32 = 3.14
var b float64 = 3.1415

復數

Go中支持的復數有兩種

  • complex64

  • complex128

var a complex64
a = 1 + 2i
var b complex128
b = 2 + 3i

復數擁有實部和虛部,complex64的實部和虛部為32位,而complex128的實部和虛部為64位

布爾值

Go中布爾值通過bool進行類型聲明,布爾值的數據只能時truefalse,并且布爾類型變量的默認值為falseGo中不允許將整型強制轉換為布爾型,而且布爾型無法參加數值運算,也無法與其他類型進行轉換

var a bool = true
var b bool = false

字符串

Go中字符串是以雙引號包裹的內容

var a string = "water"
var b string = "你好"

字符串的轉義符

  • \r:回車符

  • \n:換行符

  • \t:制表符

  • \':單引號

  • \":雙引號

  • \\:反斜杠

多行字符串

Go中要定義一個多行字符串時,需要使用反引號包裹

var a string = `這是
什么
`

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

常用的操作字符串的手段

name := "water"
zhName := "中國"
join := []string{"water", "iio"}
  • len(string) 獲取字符長度

// len
fmt.Println(len(name)) => 5
fmt.Println(len(zhName)) => 6 // 一個漢字占用3個字符所以是字符的長度
  • utf8.RuneCountInString 獲取字符串長度

// utf8.RuneCountInString
fmt.Println(utf8.RuneCountInString(name)) => 5
fmt.Println(utf8.RuneCountInString(zhName)) => 2
  • +/fmt.Sprintf 連接字符串

// +/fmt.Sprintf
fmt.Println(zhName + name) => "中國water"
fmt.Println(fmt.Sprintf("我是%s的%s", zhName, name)) => "我是中國的water"
  • strings.Split 分割字符串

fmt.Println(strings.Split(name, "")) => [w a t e r]
  • strings.Contains 判斷是否包含子字符串

fmt.Println(strings.Contains(name, "w")) => true
  • strings.HasPrefix 判斷是否以子字符串開頭

fmt.Println(strings.HasPrefix(name, "w")) => true
  • strings.HasSuffix 判斷是否以子字符串結尾

fmt.Println(strings.HasSuffix(name, "r")) => true
  • strings.Index() 判斷子字符串或字符在父字符串中出現的位置(索引)

fmt.Println(strings.Index(name, "r")) => 4
  • strings.LastIndex() 返回子字符串在字符串中最后出現位置的索引( 子字符串的第一個字符的索引)

fmt.Println(strings.LastIndex("waterte", "te")) => 5
  • strings.Join(a[]string,sep string) 把切片連接成字符串

fmt.Println(strings.Join(join, ",")) => "water,iio"

byte和rune類型

Go中組成字符串的叫做字符,每個字符串都有字符組成,一般可以通過遍歷或者單個獲取字符串元素獲得字符。字符用單引號包裹

var a = '我'
var b = 't'

Go中字符有兩種

  • uint8類型也叫byte型,代表一個ASCII碼字符

  • rune類型,代表一個UTF-8字符

當需要處理中文、日文或者其他復合字符時,則需要用到rune類型。rune類型實際是一個int32

Go 使用了特殊的 rune 類型來處理 Unicode,讓基于 Unicode 的文本處理更為方便,也可以使用 byte 型進行默認字符串處理,性能和擴展性都有照顧。

因為UTF8編碼下一個中文漢字由3~4個字節組成,所以我們不能簡單的按照字節去遍歷一個包含中文的字符串,否則就會出現上面輸出中第一行的結果。

字符串底層是一個byte數組,所以可以和[]byte類型相互轉換。字符串是不能修改的 字符串是由byte字節組成,所以字符串的長度是byte字節的長度。 rune類型用來表示utf8字符,一個rune字符由一個或多個byte組成。

修改字符串

要修改字符串,需要先將其轉換成[]rune[]byte,完成后再轉換為string。無論哪種轉換,都會重新分配內存,并復制字節數組。

func setString() {
   name := "water"
   // 強制類型轉換
   byteName := []byte(name)
   byteName[0] = 'm'
   fmt.Println(string(byteName))
   zhName := "大熊貓"
   runeZhName := []rune(zhName)
   runeZhName[0] = '小'
   fmt.Println(string(runeZhName))
}
=>  mater
   小熊貓

類型轉換

Go語言中只有強制類型轉換,沒有隱式類型轉換。該語法只能在兩個類型之間支持相互轉換的時候使用。

強制類型轉換的基本語法如下:

T(表達式)
 fmt.Println(string(runeZhName))

關于“Go語言中的基礎數據類型如何使用”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Go語言中的基礎數據類型如何使用”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南投市| 漠河县| 孟连| 大安市| 泰兴市| 林口县| 伊宁县| 山阳县| 晋中市| 昭通市| 嘉定区| 扶绥县| 延长县| 临江市| 淮北市| 津市市| 海南省| 宜章县| 南川市| 岳普湖县| 曲沃县| 翼城县| 新和县| 拜城县| 且末县| 武功县| 修文县| 曲阜市| 连江县| 镇宁| 防城港市| 大埔县| 庆安县| 同德县| 当雄县| 缙云县| 江孜县| 兴和县| 新乡市| 玛沁县| 莎车县|