• 技术文章 >后端开发 >Golang

    go语言常量有多少种

    青灯夜游青灯夜游2023-01-09 10:39:54原创69

    go语言常量有5种:布尔型常量、整数型常量、浮点型常量、复数常量和字符串型常量。Go语言中的常量使用关键字const定义,用于存储不会改变的数据,常量是在编译时被创建的,即使定义在函数内部也是如此,并且只能是布尔型、数字型(整数型、浮点型和复数)和字符串型。

    本教程操作环境:windows7系统、GO 1.18版本、Dell G3电脑。

    常量是指程序在执行过程中可能不会改变的固定值。 这些固定值也称为文字。

    常量是程序中最基础的元素,在定义之后就不能再重新赋值了。

    Go语言中的常量使用关键字 const 定义,用于存储不会改变的数据,常量是在编译时被创建的,即使定义在函数内部也是如此,并且只能是布尔型、数字型(整数型、浮点型和复数)和字符串型。由于编译时的限制,定义常量的表达式必须为能被编译器求值的常量表达式。

    布尔常量

    布尔常量只有两个取值,真(true)或者假(false)。

    代码如下:

    const x = true
    fmt.Print(x) //输出true

    整数常量

    整型常量其实就是正数

    代码如下:

    const x = 20
    fmt.Print(x) //输出20

    浮点数常量

    浮点数常量其实就是小数

    代码如下:

    cOnstx= 0.618
    fmt.Print(x) //输出%f0.618

    字符/字符串常量

    代码如下:

    const x = 'a'
    fmt.Print(x) //输出97
    
    const x = "a"
    fmt.Print(x) //输出a

    复数常量

    代码如下:

    const x = 3 + 2i
    fmt.Print(x) //输出%v(3+2i)

    仔细看的童靴会发现'a'和”a”的输出值不一样,单引号的'a'表示字符,双引号的”a”表示字符串。在Go语言里 '1′,”1″,1是不一样的值,这个和C语言是一样的。有兴趣的童靴可以自己试试输出试试看。

    扩展知识:无类型常量

    Go语言的常量有个不同寻常之处。虽然一个常量可以有任意一个确定的基础类型,例如 int 或 float64,或者是类似 time.Duration 这样的基础类型,但是许多常量并没有一个明确的基础类型。

    编译器为这些没有明确的基础类型的数字常量提供比基础类型更高精度的算术运算,可以认为至少有 256bit 的运算精度。这里有六种未明确类型的常量类型,分别是无类型的布尔型、无类型的整数、无类型的字符、无类型的浮点数、无类型的复数、无类型的字符串。

    通过延迟明确常量的具体类型,不仅可以提供更高的运算精度,而且可以直接用于更多的表达式而不需要显式的类型转换。

    【示例 1】math.Pi 无类型的浮点数常量,可以直接用于任意需要浮点数或复数的地方:

    var x float32 = math.Pi
    var y float64 = math.Pi
    var z complex128 = math.Pi

    如果 math.Pi 被确定为特定类型,比如 float64,那么结果精度可能会不一样,同时对于需要 float32 或 complex128 类型值的地方则需要一个明确的强制类型转换:

    const Pi64 float64 = math.Pi
    var x float32 = float32(Pi64)
    var y float64 = Pi64
    var z complex128 = complex128(Pi64)

    【相关推荐:Go视频教程编程教学

    以上就是go语言常量有多少种的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:go语言 Golang
    上一篇:go语言怎么设置时区 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • golang怎么检测变量是否为字符串• Go语言中类型与接口有什么关系• go语言的init()方法有什么用• go语言的beego是什么• go语言怎么进行强制类型转换
    1/1

    PHP中文网