• 2.2 Go语言中的布尔型和整型


    变量类型

    上一节对Go语言中的变量的定义方法进行了介绍,定义的方式一种是显示,一种为隐式。显示定义需要明确变量类型,而隐式定义则根据赋予的值来决定变量的类型。那么Go语言中到底有多少种变量类型呢?可以分为以下几种:

    • 基本类型:数值、字符串、布尔型、常量等
    • 集合类型:数组和结构体
    • 引用类型:指针,切片(Slice),Maps,函数和Channel
    • 接口(Interface)类型

    本节我们从基本类型开始学习,后续将为大家介绍数组、切片和Maps。

    布尔型(bool)

    布尔型是每一种语言中最常用的变量,Go语言中的关键字为bool, 允许的值为true或false,默认值为false,我们通过一段程序来看一下Go语言中的默认值。

    package main
    
    import "fmt"
    
    func main() {
        var a bool
    
        fmt.Printf("Bool default value: %v\n", a)
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    根据上一节的内容,我们也可以这样初始化bool类型的变量。

    a := false
    
    • 1

    数值类型(Numerical)

    数值类型是所有语言中最常用的变量类型,Go语言中与数值类型相关的主要包括整型(int),无符号整型(uint8),浮点型(float32/float64,注意没有float类型)。

    Go变量类型允许范围默认值
    int
    int8
    int16
    rune → int32
    int64
    uint8 : 0 to 255
    uint16 : 0 to 65535
    uint32 : 0 to 4294967295
    uint64 : 0 to 18446744073709551615
    0
    byte → uint8
    uint16
    uint32
    uint64
    int8 : -128 to 127
    int16 : -32768 to 32767
    int32 : -2147483648 to 2147483647
    int64 : -9223372036854775808 to 9223372036854775807
    0
    float32
    float64
    math.SmallestNonzeroFloat32
    math.MaxFloat32
    math.SmallestNonzeroFloat64
    math.MaxFloat64
    0
    • 对于32位的环境,整型为32位,对于64位的环境,整型为64位;当显示定义时,即使是32位系统,整型或浮点型64仍然是64
    • float32和float64的最大最小值可以使用math模块的SmallestNonzeroFloat32和MaxFloat32获取,如果64位,则尾数修改为64
    package main
    
    import (
        "fmt"
        "math"
    )
    
    func main() {
        fmt.Printf("min float64: %.50e\n", math.SmallestNonzeroFloat64)
        fmt.Printf("max float64: %.50e\n", math.MaxFloat64)
    
        fmt.Printf("min float32: %.50e\n", math.SmallestNonzeroFloat32)
        fmt.Printf("max float32: %.50e\n", math.MaxFloat32)
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    输出结果为

    min float64: 4.94065645841246544176568792868221372365059802614325e-324
    max float64: 1.79769313486231570814527423731704356798070567525845e+308
    min float32: 1.40129846432481707092372958328991613128026194187652e-45
    max float32: 3.40282346638528859811704183484516925440000000000000e+38
    
    • 1
    • 2
    • 3
    • 4
  • 相关阅读:
    高一女孩成 AI 赛事奖项收割机,05 后新星如何踏上 CV 之路?
    (Golang) 牛客 在线编程 Go语言入门
    C#使用OpenCv(OpenCVSharp)图像轮廓多边形逼近和轮廓最小矩形实例
    【LVGL 学习】样式(style)过渡动画学习
    Burp Suite配置过滤忽略Ruby code injection和XML injection类型的安全问题
    【源码系列】情侣游戏小程序系统开发飞行棋扫雷大冒险
    【毕业设计】大数据用户画像数据分析系统 - python
    ES6的异步,promise,async和await了解
    <C++>深度学习多态
    重庆建筑模板厂家有哪些?
  • 原文地址:https://blog.csdn.net/xiaoquqi/article/details/125435688