go語言數值類型及布爾類型

常量

常量聲明
常量是程序在編譯時就肯定的值,程序在執行時不能修改常量的值。聲明常量使用關鍵字const。在聲明常量時,須要對常量賦值。
const 名稱 類型 = 值 或
const 名稱 = 值 自動作類型推斷html

const aa int = 123 //正確
const aa = 123 //正確
const aa int   //錯誤

枚舉
go語言沒有提供枚舉類型,能夠藉助常量來定義, iota默認值是0,在一組const定義中每次+1,編程

const (
        E int = iota // 東 0
        W            // 西 1
        S            // 南 2
        N            // 北 3
    )

    const (
        E1 int = iota + 3 // 東 3
        W1                // 西 4
        S1                // 南 5
        N1                // 北 6
    )

變量

變量是編程語言的重要組成元素,變量至關於內存空間的一個別名,在程序執行時,根據聲明的變量,會在內存中開闢這樣的一塊存儲單元。
變量聲明
變量聲明定義了內存中存儲的規則和規範,如,var aa int8的意思是請在內存中給我一塊1byte的長度的存儲單元,我要用來存儲數字的轉化後的補碼,這裏的聲明,至關於定義,至關於蓋房子畫的圖紙,在初始化時,真正的落實和執行。可是在基本類型聲明時,會直接對其作初實化,也就是說,對於基本類型,在使用var聲明時,聲明和初始化是一塊兒作的。
聲明的語法
直接聲明式
var 變量名 類型
類型推斷式
var 變量名 = 值
簡短聲明(該種方式只能用於局部變量)
變量名 := 值編程語言

變量初始化
變量初始化是剛在上文說的開闢內存空間,符初值,整型類型默認的初值爲0,也能夠在聲明時對其設定
例:函數

var aa int8 = 8
var bb = 11
cc := 3

在基本類型中,變量的聲明和初始化其實是一步,這裏之因此分開闡述是爲了說明實際上這是兩步操做
變量賦值
在聲明瞭變量後,就能夠修改變量的值
變量的賦值很簡單,使用=進行賦工具

注意
已經聲明瞭的變量不能對其再次聲明
如:ui

var aa int = 8
var aa int8

整型

當咱們要把一個值變成計算機能夠識別的處理,須要肯定兩點編碼

  1. 存儲的編碼方式
  2. 存儲的長度

對於整型數據,在計算機內部是以補碼的方式,存儲長度,go語言的提供的多種長度不一樣的整型數據類型。以下:spa

類型 長度
int8 1byte
int16 2byte
int32 4byte
int64 8byte
int 根據系統位數,4byte或8byte
uint8 1byte
uint16 2byte
uint32 4byte
uint64 8byte
uint 根據系統位數,4byte或8byte
byte 1byte
rune 4byte

根據以上的內存單元的規範和咱們已知的補碼知識,能夠獲得每種類型的存儲範圍
在位計算中再作詳細的展開。調試

浮點型

go語言支持的浮點型有兩種float32,float64兩種數據類型,它們的算術規範由IEEE754浮點數國際標準定義。
float32在內存分配4byte用於存儲,float64內存中分配8byte用於存儲。那麼怎麼分配這些存儲單元,也就是編碼規範。
看下它的國際標準是怎麼定義的,參考阮一峯博客
code

存儲的編碼規範又是怎麼定義的呢?
[](https://liushaobo-image-bk.os...

以上對浮點型數據的編碼規範和存儲作了說明。

複數型

go語言提供了複數數據類型complex64和complex128,這個在平時的代碼中不多用的到,在此不作展開

布爾型

在一些編程語言中,沒有bool類型使用0或1來標示go語言中的bool類型佔一個存儲單元
那個在內存中存儲的是什麼樣?
經過gdb調試工具,進入內存中,一探究竟。

計算符

一臺標準的馮諾伊曼模型計算機,有cpu,寄存器, 內存,I/O設備組成,cpu和積存器組成了計算單元,內存是數據的存儲單元,I/O設備是和做爲計算機的入口和出口同外部進行交互。
數值計算的基本運算符有加,減,乘,除,模運算,在go語言中分別對應,+,-,*,/,%
在計算機內部是怎麼完成運算的?該篇幅將單獨做爲一個專題作後文中詳細展開。在此咱們只須要知道,經過計算符鏈接的變量最終都會被轉化爲cpu的邏輯運算。

控制檯輸入輸出

上文分別介紹了內存和計算符,那麼怎麼將計算的結果打印出來,也就是將內存中值,經過I/O設備輸出?
go語言中內置的語言包中提供了這樣的函數,咱們只須要調用該函數,便可完成I/O操做。
在fmt包下有Scanln()用於輸入,Println()用於輸出。

總結

以上介紹了go語言的常量及變量的聲明,及基本類型的內存存儲方式作了總結和實驗

喜歡請關注"雲端漫記", 持續爲你更新
圖片描述

相關文章
相關標籤/搜索