GO程式設計基礎之二
阿新 • • 發佈:2018-11-11
1.常量的定義
--常量的值在編譯時就已經確定
--常量的定義格式與變數的基本相同
--等號右側必須是常量或者常量表達式
--常量表達式中函式必須是內建函式
const( PI = 3.14 SI = 1.15 CI = "test" ) const a int = 1 const b = 'A' //變數型別省略編譯器自動判斷 const c,d,e = 1,"2","A"
2.常量的初始化規則與列舉
--在定義常量組時,如果不提供初始化值,則表示將使用上行的表示式
const( f= 1 r K ) //上述程式碼,輸出f,r,K都是等於1
--常量的初始化必須是常量:編譯器在編譯的過程中,因為ss為全域性變數,是在程式執行的過程中計算的,在編譯的時候並沒有對它進行一個出來,所以在編譯的時候這個len(ss)就是缺失的值;len函式是內建的函式
const( p,m = 1,2 v,j ) //這樣輸出的常量v,j,就是1,2 //如果是這樣 const( p,m = 1,2 v ) //編譯是不通過的,因為初始化規則的使用,每一行宣告的常量的個數必須是一致的
--使用相同的表示式不代表具有相同的值
--列舉:iota是常量的計數器,從0開始,常量組中每定義1個常量自動增加1,通過初始化規則與iota可以達到列舉的效果
--每遇到一個const關鍵字,iota就會置為0
--想要使用列舉,必須在常量組中使用
const( a = "A" b c = iota d ) //上述輸出a,b,c,d分別是:A A 2 3 //常量組中第一個常量的iota值是0,iota值只與常量宣告的順序有關
//常量的命名規則一般都是大寫字母+下劃線:MAX_NUM,最好常量是全部大寫字母,不要有小寫
//首字母大寫就會被包的外部使用到
3.運算子:從左至右結合,運算元和運算子的結合
優先順序:(從高到底) --^ ! (一元運算子) --* / % << >> & &^ --+ - | ^ (二元運算子) -- == != < <= >= > -- <- (專用於channel,併發) -- && //如果第一個條件都不滿足,就直接跳過了程式碼塊 -- ||
左移和右移:1代表B,左移10位變為KB,再左移10位的話就變成MB
和運算子:& 兩個都是1的話,運算就是1;如果有一個不是1,運算就是0 ;(條件比較苛刻)
或運算子: | 如果有一個是1,那麼它就成立了 ,運算就是1(條件不那麼苛刻)
^ 在對比過程中,兩位只有一個是1,它才可以成立,運算才得1
&^ 如果在第二個數上的第一位是1,就把第一個數中的第一位改為0;如果第二個數上的數字是0,就不對第一個數上對應位做任何操作
4.