Ⅰ、基础数据类型

在 Go 编程语言中,数据类型用于声明函数和变量。
数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存,就可以充分利用内存。
Go 语言按类别有以下几种数据类型:

  1. 布尔型
    布尔型的值只可以是常量 true 或者 false。一个简单的例子:var b bool = true。

  2. 数字类型
    整型 int 和浮点型 float32、float64,Go 语言支持整型和浮点型数字,并且原生支持复数,其中位的运算采用补码。

  3. 字符串类型:
    字符串就是一串固定长度的字符连接起来的字符序列。Go的字符串是由单个字节连接起来的。Go语言的字符串的字节使用UTF-8编码标识Unicode文本。

  4. 派生类型:
    包括:

    • (a) 指针类型(Pointer)
    • (b) 数组类型
    • (c) 结构化类型(struct)
    • (d) Channel 类型
    • (e) 函数类型
    • (f) 切片类型
    • (g) 接口类型(interface)
    • (h) Map 类型

⒈数字类型

Go 也有基于架构的类型,例如:

int、uint 和 uintptr

序号类型和描述
1uint8 无符号 8 位整型 (0 到 255)
2uint16 无符号 16 位整型 (0 到 65535)
3uint32 无符号 32 位整型 (0 到 4294967295)
4uint64 无符号 64 位整型 (0 到 18446744073709551615)
5int8 有符号 8 位整型 (-128 到 127)
6int16 有符号 16 位整型 (-32768 到 32767)
7int32 有符号 32 位整型 (-2147483648 到 2147483647)
8int64 有符号 64 位整型 (-9223372036854775808 到 9223372036854775807)

浮点型

序号类型和描述
1float32 IEEE-754 32位浮点型数
2float64 IEEE-754 64位浮点型数
3complex64 32 位实数和虚数
4complex128 64 位实数和虚数

⒉其他数字类型

以下列出了其他更多的数字类型:

序号类型和描述
1byte 类似 uint8
2rune 类似 int32
3uint 32 或 64 位
4int 与 uint 一样大小
5uintptr 无符号整型,用于存放一个指针

注:go语言中一个中文字符占有3个字节

Ⅱ、代码实例

package main

        import (
            "fmt"
        )

        func main() {
            var str string = "hello,世界"

            for _, char := range str {
                fmt.Println(char)

            }
        }

此处代码输出的结果为
结果1

此时char是个rune类型,而rune类型是init32,所以就输出了对应的字符编码

而如果我这样进行编写

    package main

    import (
        "fmt"
    )

    func main() {
        var str string = "hello,世界"

        for _, char := range str {
            fmt.Println(string(char))

        }
    }

此处代码输出的结果为
结果2

这里就输出了他所对应的字符

最后给出完整的实例代码

    package main

    import (
        "fmt"
        "unsafe"
    )

    func main() {
        var str string = "hello,世界"
        fmt.Println([]byte(str))
        fmt.Println(len([]rune(str)))
        fmt.Println(unsafe.Sizeof(str))
        for _, char := range str {
            fmt.Println(string(char))

        }
    }

大家可以执行看看有什么结果

版权声明:本文为原创文章,版权归 heroyf 所有
本文链接: https://heroyf.club/2018/06/go-lesson2/


“苹果是给那些为了爱选择死亡的人的奖励”