zoukankan      html  css  js  c++  java
  • golang数据类型

             Go 语言中的数据类型,也是多姿多态,不过一般分为两大类,基本类型和引用类型,基本数据类型有int,float,bool,string,以及数组和struct,特点是变量直接存储值,内存通常在栈中分配,栈在函数调用完会被释放,引用类型有,指针,slice,map,chan等都是引用类型,特点是变量存储的是一个地址,这个地址存储最终的值。内存通常在堆上分配,通过GC回收。

    基本类型

    整型

    整型分为以下两个大类: 按长度分为:int8、int16、int32、int64 对应的无符号整型:uint8、uint16、uint32、uint64

    对应占用的内存大小

    int8:    8位        1字节
    int16: 16位      2个字节
    int32: 32位     4个字节
    int64: 64位     8个字节

    可以使用math包来获取取值范围。

    package main
    
    import (
        "fmt"
        "math"
    )
    
    func main() {
        fmt.Println("int8: ", math.MinInt8, math.MaxInt8)
        fmt.Println("int16: ", math.MinInt16, math.MaxInt16)
        fmt.Println("int32: ", math.MinInt32, math.MaxInt32)
        fmt.Println("int64: ", math.MinInt64, math.MaxInt64)
    }

    浮点型

    Go语言提供两种用来存储小数的数据类似即浮点型,浮点型又分为float32、float64。区别在于表达数字的长度和精度一样。

    对应占用内存的大小

    float32: 32位    4个字节
    float64: 64位    8 个字节

     获取取值范围

    package main
    
    import (
        "fmt"
        "math"
    )
    
    func main() {
        fmt.Println("Float32: ", math.MaxFloat32)
        fmt.Println("Float32: ", math.MaxFloat64)
    
    }

    布尔值

    Go语言中的bool类型也是比较有特色的,只包含True和False两个值。布尔类型在内存中只占用一位

    注意:

    1. 布尔类型变量的默认值为false
    2. Go 语言中不允许将整型强制转换为布尔型.
    3. 布尔型无法参与数值运算,也无法与其他类型进行转换。

    字符串

    Go语言中的字符串以原生数据类型出现,使用字符串就像使用其他原生数据类型(int、bool、float32、float64 等)一样。 Go 语言里的字符串的内部实现使用UTF-8编码。 字符串的值为双引号(")中的内容,可以在Go语言的源码中直接添加非ASCII码字符,字符串在内存中占用16位也就是2个字节

    byte和rune类型

    组成每个字符串的元素叫做“字符”,可以通过遍历或者单个获取字符串元素获得字符。 字符用单引号(’)包裹起来,如:

    Go 语言的字符有以下两种:

    1. uint8类型,或者叫 byte 型,代表了ASCII码的一个字符。
    2. rune类型,代表一个 UTF-8字符

     

  • 相关阅读:
    ubuntu安装Theano+cuda
    Deep Learning 学习笔记(9):主成分分析( PCA )与 白化( whitening )
    php 基础知识
    php 常用函数
    mysql 学习碎片
    Linux 学习碎片
    php 碎片笔记
    网络资源收集
    php 设计模式
    php 图片添加文字水印 以及 图片合成(微信快码传播)
  • 原文地址:https://www.cnblogs.com/Nolover/p/12503852.html
Copyright © 2011-2022 走看看