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
}
相关文章
相关标签/搜索