go語言數(shù)據(jù)類型

數(shù)據(jù)類型:

數(shù)據(jù)類型的出現(xiàn)是為了把數(shù)據(jù)分成所需內(nèi)存大小不同的數(shù)據(jù),編程的時候需要用大數(shù)據(jù)的時候才需要申請大內(nèi)存,可以充分利用內(nèi)存,使程序執(zhí)行效率提升;

go語言中的基本類型:

布爾型:bool,bool類型表示一個布爾值,值為true或false
數(shù)值類型:

  • 有符號整型:
    int8:8位有符號整型(-128~127)
    int16:16位有符號整型(-32768~32767)
    int32:32位有符號整型(-2147483648~2147483647)
    int64:64位有符號整型(-9223372036854775808~9223372036854775807)
    int:根據(jù)系統(tǒng)不同,表示32位或64位有符號整型(32位系統(tǒng)下,-2147483648~2147483647;64位系統(tǒng)下,-9223372036854775808~9223372036854775807)
  • 無符號整型:
    uint8:8位無符號整型(0~255)
    uint16:16位無符號整型(0~65535)
    uint32:32位無符號整型(0~4294967295)
    uint64:64位無符號整型(0~18446744073709551615)
    uint:根據(jù)系統(tǒng)不同,表示32位或64位無符號整型(32位系統(tǒng)下,0~4294967295;64位系統(tǒng)下,0~18446744073709551615)
  • 浮點型:
    float64的精度要比float32的要準(zhǔn)確
    float32:32位浮點數(shù)
    float64:64位浮點數(shù)
  • 復(fù)數(shù)類型:
    complex64:實部和虛部都是 float32 類型的的復(fù)數(shù)
    complex128:實部和虛部都是 float64 類型的的復(fù)數(shù)
  • 其他數(shù)字類型:
    type:uint8 的別名(type byte = uint8)
    rune:int32 的別名(type rune = int32)

字符串類型:
string:一串固定長度的字符連接起來的字符序列,go 中的字符串是不可變的。一旦一個字符串被創(chuàng)建,那么它將無法被修改

go語言中的派生類型:

指針類型,數(shù)組類型,結(jié)構(gòu)化類型,channel類型,函數(shù)類型,切片類型,接口類型,Map類型

類型轉(zhuǎn)換:

類型轉(zhuǎn)換用于把一種類型的變量轉(zhuǎn)換成另一種類型的變量,go語言中只有顯式轉(zhuǎn)換,類型轉(zhuǎn)換只能發(fā)生在兩種兼容類型之間,轉(zhuǎn)換方式如下:

類型名稱(需要被轉(zhuǎn)換的變量或表達(dá)式)

例如:

package main

import "fmt"

func main() {
    var a = 1//int類型變量a
    var b = 0.1//float64類型變量b(因為系統(tǒng)是64位的)
    var sum = a + int(b)//int(b)把float64類型轉(zhuǎn)換成int類型
    fmt.Println(sum)//sum的值為1
}

go中再給變量賦值時也需要注意類型轉(zhuǎn)換,如下的代碼沒有進行數(shù)據(jù)轉(zhuǎn)換就會報錯cannot use a (type int) as type float64 in assignment

package main

import "fmt"

func main() {
    var a = 1//int類型變量a
    var b float64 = a//float64類型變量b(因為系統(tǒng)是64位的),沒有進行數(shù)據(jù)轉(zhuǎn)換,會報錯
    fmt.Println(b)
}

正確的給變量b賦值的語句是

var b float64 = float64(a)
類型零值與別名:

類型零值是指某個變量聲明后該變量所屬類型的默認(rèn)值,一般數(shù)值類型默認(rèn)值為0,布爾類型默認(rèn)值為false,字符串類型默認(rèn)值為空字符串;
類型別名是對某一類型進行別名設(shè)置,設(shè)置別名后的類型和原類型不同,設(shè)置類型別名方式如下:

type 類型別名 類型名

例如:

package main

type integer int

func main() {
    var a int = 1//int類型變量a
    var b integer = a//未進行類型轉(zhuǎn)換,會報錯,類型integer和int不同
        var c integer = integer(a)//進行類型轉(zhuǎn)換后不會報錯
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • TF API數(shù)學(xué)計算tf...... :math(1)剛開始先給一個運行實例。tf是基于圖(Graph)的計算系統(tǒng)...
    MachineLP閱讀 4,033評論 0 1
  • GO語言中的數(shù)據(jù)類型 數(shù)據(jù)類型的出現(xiàn)是為了把數(shù)據(jù)分成所需內(nèi)存大小不同的數(shù)據(jù),不同類型的數(shù)據(jù)占用的內(nèi)存空間是不一樣的...
    小孩真笨閱讀 369評論 0 0
  • bool bool 類型表示一個布爾值,值為 true 或者 false。 在上面的程序中,a 賦值為 true,...
    _羊羽_閱讀 1,434評論 0 0
  • 之前兩個小文兒跟大家探討了what -- chatops是怎樣一回子事和why -- chatops所帶來的一系列...
    邸富杰閱讀 1,239評論 1 3
  • 剛過新年,就聽說科幻片《流浪地球》很好看。后來微博和豆瓣上,此影片評價也排行第一。心里癢癢,又勾起了我的電影夢。 ...
    東坡觀史閱讀 362評論 0 2

友情鏈接更多精彩內(nèi)容