3、Go的常量與運算子
阿新 • • 發佈:2018-12-02
課堂作業
請嘗試執行以下程式碼,會發生什麼?
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)
&&、||