阅读 105

Go 语言常量

正如名称“ CONSTANTS”所暗示的意思是固定的,在编程语言中也是如此,即,一旦定义了常量的值,就无法再对其进行修改。常量可以有任何基本数据类型,例如整数常量,浮点常量,字符常量或字符串文字。

如何声明?
常量就像变量一样声明,但是使用const 关键字作为前缀来声明具有特定类型的常量。不能使用:=语法声明。

package mainimport "fmt"const PI = 3.14func main() {
    const GFG = "nhooo"    fmt.Println("Hello", GFG)
    fmt.Println("Happy", PI, "Day")
    const Correct= true    fmt.Println("Go rules?", Correct)
}

输出:

Hello nhoooHappy 3.14 DayGo rules? true

未类型化和类型化的数字常量:
类型化常量的工作方式就像不可变变量只能与相同类型互操作,而未类型化常量的工作方式就像文字常量可以与相似类型互操作。可以在Go中使用或不使用类型来声明常量。下面的示例显示已命名和未命名的类型化和未类型化的数字常量。

const untypedInteger          = 123const untypedFloating typed   = 123.12const typedInteger  int             = 123const typedFloatingPoint   float64  = 123.12

以下是Go语言中的常量列表:

  • 数值常量(整数常量,浮点常量,复数常量)

  • 字符串字面量

  • 布尔常量

数值常量:
数值常量是高精度值。Go是一种静态类型的语言,不允许混合数字类型的操作。您不能将float64添加到int,甚至不能将int32添加 int。虽然,写1e6 * time.Second 或math.Exp(1)甚至 1 <<('\ t'+ 2.0) 都是合法的。在Go中,常量与变量不同,其行为类似于常规数字。

数值常量可以是3种,即整数,浮点数,复数

整数常量:

  • 前缀指定基数:十六进制为0x或0X,八进制为0,十进制为0。

  • 整数字面量也可以具有后缀,分别是U(大写)和L(大写)的组合,分别表示无符号和长整数。

  • 它可以是十进制,八进制或十六进制常量

  • 一个int最多可以存储64位整数,有时更少。

以下是整数常量的一些示例

85         /* decimal */0213       /* octal */0x4b       /* 十六进制 */30         /* int */30u        /* unsigned int */30l        /* long */30ul       /* unsigned long */212         /* 合法 */215u        /* 合法 */0xFeeL      /* 合法 */078         /* 非法的:8不是八进制数字 */032UU       /* 非法的:不能重复后缀 */

复数常量:
复数常量的行为与浮点常量非常相似。它是整数常数(或参数)的有序对 或 实数对,并且该常数用逗号分隔,并且该对包含在括号之间。第一个常数是实部,第二个常数是虚部。复数常量COMPLEX * 8使用8个字节的存储空间。

(0.0, 0.0) (-123.456E+30, 987.654E-29)

浮动类型常量:

  • 浮点型常量具有一个整数部分,一个小数点,一个小数部分和一个指数部分

  • 可以用十进制或指数形式表示浮点常量。

  • 虽然用十进制形式表示,必须包含小数点,指数,或两者兼而有之。

  • 并且在使用指数形式表示时,必须包括整数部分,小数部分或两者。

以下是浮点类型常量的示例:

3.14159       /* 合法 */314159E-5L    /* 合法 */510E          /* 非法:不完整的指数 */210f          /* 非法:没有小数或指数 */.e55          /* 非法:缺少整数或分数 */

字符串文字

  • Go支持两种类型的字符串文字,即“”(双引号样式)和“”(反引号)。

  • 字符串可以级联++ =运算符。

  • 字符串包含与字符字面量相似的字符:纯字符,转义序列和通用字符,这是无类型的。

  • 字符串类型的零值是空白字符串,可以用或以文字表示。 " " ''

  • 通过使用==,!=和(用于比较相同类型)等运算符可比较字符串类型

语法

type _string struct {
    elements *byte // 底层字节    len      int   //字节数}

显示字符串文字的示例:
"hello, nhooo"

"hello, \

nhooo"

"hello, " "geeks" "forgeeks"

在这里,以上所有三个语句都是相似的,即它们没有任何特定的类型。
例:

package mainimport "fmt"func main() {
    const A= "GFG"    var B = "nhooo"    
    //拼接字符串    var helloWorld = A+ " " + B
    helloWorld += "!"    fmt.Println(helloWorld) 
    
    //比较字符串    fmt.Println(A == "GFG")   
    fmt.Println(B < A) 
}

输出:

GFG nhooo!truefalse

布尔常量:
布尔常量类似于字符串常量。它应用与字符串常量相同的规则,不同之处仅在于它具有两个未类型化的常量true和false。

package mainimport "fmt"const Pi = 3.14func main() {
    const trueConst = true    type myBool bool    var defaultBool = trueConst       // 允许    var customBool myBool = trueConst // 允许    //  defaultBool = customBool // 不允许    fmt.Println(defaultBool)
    fmt.Println(customBool)

}

输出:

true


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐