常量与运算符

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kongshuai19900505/article/details/88048384

1.常量的定义

1)常量的值再编译时就已经确定

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

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

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

例如:

//定义单个常量
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
)

代码实例:
package main


import (
    "fmt"
    "math"
)


//定义常量
const str = "acvfrttt"
func main() {
    //定义常量  
    const a, b = 3, 5
    var c int
    c = int(math.Sqrt(a*a + b*b))
    fmt.Println(str, c)
}

输出:
API server listening at: 127.0.0.1:28132
123 5

2.常量的初始化规则与枚举

1)在定义常量组时,如果不提供初始值,则表示将使用上行的表达式

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

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

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

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

例如:

const (
    //a与b的值都为“A”
    a = "A"
    b
    c = iota 
    d //d的值为3
)


const (
    e = iota 
    f //f的值为1
)


//星期枚举
const (
    //第一个常量不可省略表达式
    Monday = iota  //iota是自增值
    Tuesday 
    Wednesday 
    Thursday 
    Friday 
    Saturday 
    Sunday 
)

//B, KB, MB, GB, TB, PB
const (
    B = 1 << (10 * iota)
    KB
    MB
    GB
    TB
    PB
)

代码实例:

package main


import (
    "fmt"
)


//B, KB, MB, GB, TB, PB
const (
    B = 1 << (10 * iota)
    KB
    MB
    GB
    TB
    PB
)


//星期枚举
const (
    //第一个常量不可省略表达式
    Monday = iota //iota是自增值
    Tuesday
    Wednesday
    Thursday
    Friday
    Saturday
    Sunday
)


func main() {
    fmt.Println(Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday)
    fmt.Println(B, KB, MB, GB, TB, PB)
}

输出:
API server listening at: 127.0.0.1:6247
0 1 2 3 4 5 6
1 1024 1048576 1073741824 1099511627776 1125899906842624

3.运算符

Go中的运算符均是从左至右结合。

优先级:

1)^ ! (一元运算)

2)* / % << >> & &^

3)+ - | ^ (二元运算)

4)== != < <= >= >

5)<- (专门用于channel)

6)&&

7)||

4.递增递减语句

在Go当中,++与--是作为语句而不是作为表达式

猜你喜欢

转载自blog.csdn.net/kongshuai19900505/article/details/88048384