這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
Golang是google發布的開源程式設計語言,這裡就不對其進行過多介紹,網上有很多文章已經把它的前身後世都介紹的很清楚了,有興趣的可以去查閱,前幾天剛開始接觸Golang的開發,今天抽空在開發之餘對其做一些整理,今天要說的就是Golang的基礎資料型別 (Elementary Data Type)。
單純的介紹資料類型,沒有任何意義,無非就是几几個類型,明白表示什麼意思,但是一門語言要設定那麼一些資料類型肯定是有它的原因的。我們需要瞭解一下不同的資料類型在記憶體中的形式。
首先來瞭解幾個概念,bit(位元位),byte(位元組),word(字)這三個概念以及它們之間的關係。
電腦是很多電路的整合,在電腦中每一個閉合電路只有 0, 1兩種狀態。所以資料在電腦中是以二進位(只有0和1組成)形式存在的。所以電腦的本質就是就是對0,1的操作。bit是資訊的最小單位,就是指一個資訊位。0或者1表示的就是1bit,所以0000就是4個bit。相應的位元組與位之間存在關係1byte = 8bit, 而word則與系統硬體(匯流排,cpu指令字位元等)有關,比如資料匯流排為16位,則1word=2byte, 如果32位則有1word=4byte。儲存容量通常使用byte表示,並且與硬體無關即1byte=8bit。在電腦中還涉及到一個概念就是CPU的位元,即電腦CPU一次能處理的的bit位元,比如常見的有32位和64位,就對應著32bit和64bit,即4byte或者8byte。
我們還需要瞭解一下字元與位元組之間的的關係。這就會涉及到編碼的問題。常見的編碼有ASCII編碼,UTF-8編碼,Unicode編碼,在不同編碼方式下的位元組與字元的關係描述如下:
ASCII碼:一個英文字母(不分大小寫)佔一個位元組的空間,一個中文漢字佔兩個位元組的空間。一個位元字序列,在電腦中作為一個數字單元,一般為8位位元,換算為十進位。最小值0,最大值255。如一個ASCII碼就是一個位元組。
UTF-8編碼:一個英文字元等於一個位元組,一個中文(含繁體)等於三個位元組。
Unicode編碼:一個英文等於兩個位元組,一個中文(含繁體)等於兩個位元組。
符號:英文標點佔一個位元組,中文標點佔兩個位元組。舉例:英文句號“.”佔1個位元組的大小,中文句號“。”佔2個位元組的大小。
在瞭解了這些基本的概念之後我們再去學習程式設計語言中的資料類型,就比較好理解了,而且也比較容易掌握它。