go引用型別轉為值 Go基本資料型別

2021-10-17 09:43:56 字數 2190 閱讀 3919

go語言中給我們提供的所有基本資料型別,我們應該理解如何在自己的go程式中使用這些型別。

資料型別

go語言將資料型別分為四類:basic types(基礎型別)、aggregate types (復合型別)、reference types (引用型別)、inte***ce types (介面型別)。

基礎型別包括:數字、字串和布林型。布林型的值只可以是常量 true 或者 false。數字型別支援整型和浮點型,並且支援複數,其中位的運算採用補碼。

復合資料型別包括:陣列、結構體是通過組合簡單型別,來表達更加複雜的資料結構。

引用型別包括:指標、slice、map、 channel、介面和函式型別。當宣告引用型別的變數時,建立的變數被稱作標頭(header)值。從技術細節上說,字串也是一種引用型別。每個引用型別建立的標頭值是包含乙個指向底層資料結構的指標。每個引用型別還包含一組獨特的字段,用於管理底層資料結構。因為標頭值是為複製而設計的,所以永遠不需要共享乙個引用型別的值。標頭值裡包含乙個指標,因此通過複製來傳遞乙個引用型別的值的副本,本質上就是在共享底層資料結構。

integers

我們可以在程式中使用有符號或無符號整數,並可以指定所需的整數大小。我們為什麼要指定您可能要求的大小,好吧,想象一下您正在嘗試優化程式的記憶體利用率。如果您知道某個數字不會超過某個特定值,則可以選擇乙個適合該值的尺寸:

我們可以通過鍵入 uint 或 int 在末尾附加int的大小來建立新的整數變數。如果我們想要乙個8位無符號整數,那麼它將看起來像 var myint uint8 這樣:

應該注意的是,如果您嘗試為乙個int分配乙個比它可以處理的更大的值,即:

var myint int8

myint = 2500

go編譯器將無法執行或構建程式,並且將輸出2500溢位的事實 int8 。但是,如果要在執行時溢位整數,則可能會開始看到奇怪的結果。例如,嘗試執行此程式並檢查輸出:

型別轉換

當涉及使用具有不同資料型別的多個變數時,您通常會不得不將各種整數變數轉換為 int 。這將處理從 uint8 和 int16 到標準32或64位有符號int的轉換,從那裡您將能夠執行加法,乘法和減法。

浮點數字

它們有2個不同的大小,或者為 float32 , float64 並且使您可以處理標準 int64 資料型別中無法容納的大量資料。浮點數的範圍極限值可以在math包找到。常量 math.maxfloat32 表示 float32 能表示的最大數值,大約是 3.4e38 ;對應的 math.maxfloat64 常量大約是 1.8e308 。它們分別能表示的最小值近似為 1.4e-45 和 4.9e-324 。

float32 ieee-754 32位浮點型數

float64 ieee-754 64位浮點型數

float 轉換為 int

如果要將整數轉換為浮點數或將浮點數轉換為int,則可以通過將變數轉換為所需的資料型別來實現。

複數還有另一種通常被忽略的數字資料型別,即複數資料型別。這些與浮點資料型別非常相似,有兩種不同的大小,您可以選擇 complex64 或 complex128 。

complex64 32 位實數和虛數

complex128 64 位實數和虛數

布林讓我們看看如何在我們的go程式之一中使用它:

var amazing bool  amazing = true  if amazing
如果我們想在程式中做一些布林邏輯會怎樣?好了,使用 || 和 && 運算子,我們可以:

字串

常量常量是go語言中我們最終的基本資料型別。它們使我們可以指定在程式執行過程中不會改變的不可變值。

const meaningoflife = 42

Go的基本資料型別

go語言的資料型別主要分為四種 基礎型別 數字,字串,布林型別 復合型別 陣列,結構體 引用型別 指標,切片,字典,函式和通道 介面型別 go 語言的整型定義型別有符號型別主要有int8,int16,int32,int64,無符號型別uint8,uint16,uint32,uint64.int 和u...

GO語言基本資料型別

任何go語言原始碼檔案都由若干個程式實體組成的。在go語言中,變數 常量 函式 結構體和介面被統稱為 程式實體 而它們的名字被統稱為 識別符號 識別符號可以是任何unicode編碼可以表示的字母字元 數字以及下劃線 不過,首字母不能是數字或下劃線。注意 在go語言中,我們對程式實體的訪問許可權控制只...

Go語言基本資料型別(四)

go語言基本資料型別主要包含 bool,number,string go中的布林型別,只能是 true 和 false,例如 var b bool true 型別描述 uint8 無符號 8位整型 0 到 255 uint16 無符號 16位整型 0 到 65535 uint32 無符號 32位整型...