Go 語言學習筆記 -第3章 基本數據類型

Go 語言學習筆記 -第3章

[toc]golang

基本數據類型

數值型
整數類型
int, int8(1字節), int16(2字節), int32(3字節), int64(4字節);數組

int8範圍: -2的七次方 到2的七次方 - 1
xxxx
xxx
xxx函數

uint, uint8, uint16, uint32, unit64, byte學習

uint8範圍:0 到2的8次方-1
xxxx
以此類推ui

rune ~ 等價int32, 表示一個unicode編碼

byte 0~255指針

浮點類型 float32, float64code

字符型:沒有專門的字符型,使用byte來保存單個字母字符orm

布爾型: bool接口

字符串:string

派生、複雜數據類型

指針
數組
結構體
管道
函數
切片
接口
map

備註:

一、查看某個變量的數據類型

package main

import "fmt"

func main() {
    var n1 = 100
    fmt.Printf("n1類型:%T", n1)

}

//n1類型:int

二、整型默認聲明類型爲int

package main

import (
    "fmt"
    "unsafe"
)

func main() {
    var n1 = 100
    fmt.Printf("n1 的 類型:%T, 佔用的字節數:%d", n1, unsafe.Sizeof(n1))

}

//n1 的 類型:int, 佔用的字節數:8

三、變量在使用時,儘可能使用佔用空間小的數據類型

四、bit 計算機中的最小存儲單位

byte 計算機中基本存儲單元

1 byte = 8 bit

五、浮點數 = 符號位+指數位+尾數位 //這怎麼理解?
浮點默認聲明 float64類型

可能有精度損失?

float64精度比float32更準確

看一個例子:

package main

import (
    "fmt"
)

func main() {
    var price1 float32 = -123.0000901
    var price2 float64 = -123.0000901

    fmt.Println("price1=", price1) //price1= -123.00009
    fmt.Println("price2=", price2) //price2= -123.0000901

}

6.字符使用

若是保存的字符在ASCII表的, 好比[0-1, a-z, A-Z..] 直接保存到byte

對應碼值大於255, 能夠考慮使用int類型

package main

import (
    "fmt"
)

func main() {
    //var price byte = '北'  //overflow溢出
    var price int = '北'

    fmt.Println("price=", price)  //返回97
    fmt.Printf("price=%c", price) //返回a

}

存儲:字符->對應碼值->二進制->存儲
讀取: 二進制->碼值->字符->讀取

GO編碼統一utf8

七、字符串是不可變的

package main

import (
    "fmt"
)

func main() {
    var str = "hello world"
    str[0] = 'a' //報錯

    fmt.Println("str=", str)

}

字符串的表示方式

1)雙引號, 會識別轉義字符

2)反引號, 以字符串的原生形式輸出,包括換行和特殊字符

package main

import (
    "fmt"
)

func main() {
    str := "hello\nworld"
    fmt.Println("str=", str)

    str1 := `
    package main

import (
    "fmt"
)

func main() {
    str := "hello\nworld"
    fmt.Println("str=", str)
    `
    fmt.Println("str1=", str1)

}

字符串拼接:

package main

import (
    "fmt"
)

func main() {
    str := "hello\nworld" +
        "你好"

    fmt.Println("str=", str)

}

go語言中int和byte轉換

判斷進制存儲:

package main

import (
    "fmt"
    "strconv"
)

func main() {
    n := int64(123)

    fmt.Println(strconv.FormatInt(n, 2)) //1111011
}
相關文章
相關標籤/搜索