Go語言你基礎資料型別

2021-09-28 12:32:42 字數 2881 閱讀 4089

布林型別

位元組型別

go語言中的字串型別都是不可變型別,預設使用utf-8編碼。

兩種表示形式:

(1)雙引號表示

var a =

"char"

//定義個字串變數a,值為 "char"

當然雙引號裡面也可以是轉義字元,八進位制表示或十六進製制表示。

var a =

"中\n國"

var b =

"\x61"

var c =

"\142"

(2)單引號表示

單引號也可以表示字串,與雙引號的區別是單引號裡面的內容原樣輸出,

var a =

"中\n國"

// 輸出的結果為 "中\n國" 轉義字元回車並不會生效

go語言同時提供了有符號和無符號的整數型別,其中包括 int8、int16、int32 和 int64 四種大小截然不同的有符號整數型別,分別對應 8、16、32、64 bit(二進位制位)大小的有符號整數,與此對應的是 uint8、uint16、uint32 和 uint64 四種無符號整數型別。

此外還有 int ,uint 型別,對應所在機器的cpu位元組碼待定的長度,機器是32位的那麼int就表示有符號32bit大小,機器是64位的int就表示有符號的64bit大小。uint也是同樣同理,只不過表示的是無符號的資料型別而已。

uintptr 是屬於無符號的資料型別,沒有指定bit大小,為什麼沒有指定大小呢?因為我們日常編碼開發過程中壓根就不回用到。它用於底層**編譯互動使用。

(1)定義

var a = 10

// 定義乙個整型資料型別變數a

顧名思義,浮點型即為小數型別,有 float32(精確到小數點後7位),float64(精確到小數點後15位),

定義:

var f = 3.1415926

var v

= 3.0

var v1 float64 = 3.0000000000000001

// 不顯示宣告資料型別,v 的預設型別是float64, v

== v1 返回true, 應為float64後15位以後會忽略。

沒錯,負數型別就是高中學的負數那種,有實部與虛部。go語言中的複數型別有兩種:complex64,complex128

定義:

// 定義64bit型別複數

a := complex64(2 + 5i)

// 定義128bit型別複數

b := complex(2, 5)

// 定義128bit型別複數

c := complex128(4 +0 5i)

// 獲取出複數的虛數部分值

fmt.printf(

"%v\n", imag(a))

fmt.printf(

"%v\n", imag(b))

fmt.printf(

"%v\n", imag(c))

fmt.printf(

"%v\n", real(c))

與其他程式語言的bool型別一樣,幾乎沒有區別,即,真值(true) 假值(false)

(1)定義:

// 定義乙個bool型別b 值為true

var b =

true

// 定義乙個bool型別c 值為false

c :=

false

(2)與字串型別互相轉換

// string 轉 bool

// 字串可以是 "1", "t", "t", "true", "true", "true","0", "f", "f", "false", "false", "false" 中的任何乙個

var b =

"true"

v,err := strconv.parsebool(b)

// bool 型別轉string

f :=

false

v := strconv.formatbool(f)

// 如果 f 值為false,返回字串「false」 ;值為true 返回字串「true」

因為golang中字串其實是可以看成是兩種形態,一種是位元組型別,一種是字元型別;型別定義好字串之後是不能夠修改的,假設你有個字串 str := 「中guo」,你想對位元組進行修改,那麼你就可以把str先轉換位byte , 如下:

str :=

"123abc"

strbyte :=

byte(str)

fmt.print(string(strbyte)) // 輸出 「123abc」

strbyte[0]

= 65

fmt.print(string(strbyte)) // 輸出 「a23abc」

str2 :=

"中國123"

strrune :=

rune(str2)

fmt.print(

"%#v",string(strrune))// 輸出"中國123"

strrune[0]

= 65

fmt.print(

"%#v",string(strrune))// 輸出"a國124"

總結:

(1)你想修改乙個字串中的某乙個字元,可以先把字串轉為rune,然後根據下標進行修改;

(2)你想修改乙個字串中的某乙個位元組,可以先把字串轉為byte,然後根據下標進行修改;

Go語言基礎資料型別轉換

前面給大家分享過go語言中的基本資料型別 沒有關注的可以看下歷史訊息 分別是 布林型別 整形 浮點型 複數型別 字串和字元型別 go語言是強型別語言,不能像php那樣可以自動轉換,需要顯示的進行強制轉換。這裡是引用go語言基礎資料型別之萬丈高樓平地起 數值型別之間的轉換 在進行數值型別轉化時只需要使...

Go語言資料型別

go語言任何乙個變數都有乙個型別。go語言的資料型別分為基礎型別 引用型別 結構型別 基礎型別 數值型別 字元型別 字串型別 布林型別 陣列型別 引用型別 切片 map channel inte cce型別 結構型別 結構體go語言整型分為有符號 無符號型別兩大型別 有符號整數型別 既可以支援正數也...

Go 語言資料型別

在 go 程式語言中,資料型別用於宣告函式和變數。資料型別的出現是為了把資料分成所需記憶體大小不同的資料,程式設計的時候需要用大資料的時候才需要申請大記憶體,就可以充分利用記憶體。go 語言按類別有以下幾種資料型別 序號型別和描述 1布林型 布林型的值只可以是常量 true 或者 false。乙個簡...