老虞學GoLang筆記-常量

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

常量

常量和C#中的概念相同,在編譯期被建立。因為在編譯期必須確定其值,因此在聲明常量時有一些限制。

  • 其類型必須是:數值、字串、布爾值
  • 運算式必須是在編譯期可計算的
  • 聲明常量的同時必須進行初始化,其值不可再次修改

Doc

  • http://golang.org/doc/go_spec.html#Constants
  • http://golang.org/doc/go_spec.html#Constant_expressions
  • http://golang.org/doc/go_spec.html#Constant_declarations
  • http://golang.org//doc/go_spec.html#Iota

文法

const關鍵字用於聲明常量 const [(] 名稱 [資料類型] = 運算式 [)] const ( 多個常量名稱 [資料類型]= 對應的多個運算式 )

如果定義多行常量而運算式一致時可省略其他行的運算式

聲明時如果不指定資料類型,則該常量為無類型常量

const Pi = 3.14159265358 //float64Pi=3.1415

編譯錯誤: cannot assign to Pi, 變數名Pi已經被使用這裡是無法再次給Pi賦值的

const a, b, c = 1, false, "str" //多重賦值

一次可以聲明多個常量,且同時賦值,其類型可以不一致

const d = 1 << 2 //需計算的運算式複製可以是一個可以在編譯期計算出結果的運算式const ( //批量聲明  Monday, Tuesday, Wednesday = 1, 2, 3  Thursday, Friday, Saturday = 4, 5, 6 )

批量聲明多個常量

const e, f float64 = 1, 2 / 1.0

聲明多個變數時,指定其資料類型,此時 e和f均是float64資料類型

const g int ,h float64 = 1,2/1.0  

不能分別指定資料類型,資料類型後面需要跟著 '=',編譯錯誤: syntax error: unexpected comma, expecting =

iota

在Go中使用另一個常量iota計數器,只能在常量的運算式中使用。 iota在const關鍵字出現時將被重設為0(const內部的第一行之前),const中每新增一行常量聲明將使iota計數一次(iota可理解為const語句塊中的行索引)。使用iota能簡化定義,在定義枚舉時很有用。

fmt.Println(iota)  

iota只能在const內部使用。編譯錯誤: undefined: iota

const a = iota // a=0const (  b = iota     //b=0  c            //c=1)

iota從0開始計數

const (  bit00 uint32 = 1 << iota //bit00=1  bit01                    //bit01=2  bit02                    //bit02=4 )

iota可在運算式中(b=iota也是運算式)

 const (   loc0, bit0 uint32 = iota, 1 << iota   //loc0=0,bit0=1  loc1, bit1                            //loc1=1,bit1=2  loc2, bit2                            //loc2=2,bit2=4  )const (   e, f, g = iota, iota, iota //e=0,f=0,g=0 )

在同一行,iota相同

const (     h = iota    //h=0     i = 100     //i=100     j           //j=100     k = iota    //k=3  )

雖然只使用了兩次iota,但每新起一行iota都會計數

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.