Go語言筆記--常量與運算符

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當中,++與--是作爲語句而不是作爲表達式

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章