1. 程式人生 > >GO程式設計基礎之二

GO程式設計基礎之二

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.