Golang学习笔记3——常量与运算符

1.常量的定义

  • 常量的值在编译时就已经确认

  • 常量的定义格式与变量基本相同

  • 等号右侧必须是常量或者常量表达式

  • 常量表达式中的函数必须是内置函数

//定义单个常量
const a int = 1
const b = "A"
const (
    text = "123"
    length = len(text)
    num = b * 20
)
//同时定义多个变量
const i, j, k = 1, "2", "3"
const (
    text2 ,length2, num2 = "456", len(text2),  k* 10
)

2.常量的初始化规则

  • 在定义常量组时,如果不提供初始值,则表示使用上行的表达式
 var a = 1
 const (
    b  = a
    //此时报错,因为全局变量在编译时不能确定值,常量必须是编译时能确定值的或使用内置函数获得的值(eg:len())
 )
 
 const (
    a = "A"
    b
    c
    //此时 a,b,c都为"A"
 )
 
 const (
    a, b = 1, "A"
    c, d
    //a,c为1,b,d为"A"。此时注意下行的常量个数必须与上行数量保持一致
 )

3.常量的枚举

  • 使用相同的表达式不代表具有相同的值

  • iota是常量的计数器,从0开始,组中每定义1个常量自动递增1

  • 通过初始化规则与iota可以达到枚举的效果

  • 每遇到一个const关键字,iota就会重置为0

const (
    a = "A"
    b
    c = iota
    d        //d的值为3,因为在常量组中,定义了4个变量所以iota计数器从0开始计数4次,所以为3
)

4.运算符

//优先级从高到低       
 *  /  %  <<  >>  &  &^
 =  -  |  ^    
 ==  !=  <  <=  >= >
 &&
 ||

例子:

/*
 6的二进制:0110       第一个
10的二进制:1011       第二个
---------
&  0010  = 2    (两个都是1才为1)
|  1111  = 15   (一个是1就是1)
^  1101  = 13   (两个只有一个是1才是1)
$^ 0100  = 4    (第二个为1则是0,否则与第一位相同)
*/

你可能感兴趣的:(Golang学习笔记3——常量与运算符)