1. 程式人生 > >3、Go的常量與運算子

3、Go的常量與運算子

課堂作業

請嘗試執行以下程式碼,會發生什麼?

func main() {
    var a int = 65
    b := string(a)
    fmt.Println(b) // 輸出:A
}

string()表示把資料轉換為文字格式,因為計算機中儲存的任何東西本質上都是數字,string()函式自然的認為我們需要用數字65表示的文字A。

如果要轉換為字串65

package main
import (
	"fmt"
	"strconv"
)

func main() {
    var a int = 65
    b := strconv.Itoa
(a) fmt.Println(b) // 輸出:65 }

常量的定義

常量的值在編譯時就已經確定
常量的定義格式與變數基本相同
等號右側必須是常量或者常量表達式
常量表達式中的函式必須是內建函式

// 定義單個常量
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
)

常量的初始化規則與列舉

在定義常量組時,如果不提供初始值,則表示將使用上行的表示式。
使用相同的表示式不代表具有相同的值。
iota是常量的計數器,從0開始,組內每定義1個常量自動遞增1。
通過初始化規則與iota可以達到列舉的效果。
每遇到一個const關鍵字,iota就會重置為0。

const (
	// a和b都為"A"
	a = "A"
	b
	c = iota
	d	// d的值為3
)
const (
	e = iota
	f // f的值為1
)

// 星期列舉
const (
	// 第一個常量不可省略表示式
	Monday = iota
	Tuesday
	Wednesday
	Thursday
	Friday
	Saturday
	Sunday
)

運算子

優先順序(從高到低)
^、!
*、/、%、<<、>>、&、&^
+、-、|、^
==、!=、<、<=、>=、>
<- (專門用於channel)
&&、||