Go語言中怎么定義變量常量的

Go 語言中怎么定義變量常量的,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

創(chuàng)新互聯(lián)是專業(yè)的銅梁網(wǎng)站建設(shè)公司,銅梁接單;提供成都網(wǎng)站建設(shè)、成都網(wǎng)站制作,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行銅梁網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!

go語言不支持隱式類型轉(zhuǎn)換,別名和原有類型也不能進行隱式類型轉(zhuǎn)換

go語言不支持隱式轉(zhuǎn)換

變量
變量聲明
var v1 int 
var v2 string 
var v3 [10]int   // 數(shù)組 
var v4 []int    // 數(shù)組切片 
var v5 struct {     
    f int 
} 
var v6 *int    // 指針 
var v7 map[string] int // map,key為string類型,value為int類型 
var v8 func(a int) int 
//也可以這樣聲明變量
var (
    v1 int      
	v2 string
)

聲明變量不需要使用分號作為結(jié)束符

變量的初始化
var v1 int = 10 // 定義并賦值 
var v2 = 10 // 編譯器可以自動推導(dǎo)出v2的類型 
v3 := 10 // 編譯器可以自動推導(dǎo)出v3的類型

冒號和等號的組合:= 聲明并賦值

出現(xiàn)在:=左側(cè)的變量不應(yīng)該是已經(jīng)被聲明過的,否則會導(dǎo)致編譯錯誤

var a int

a := 2

會導(dǎo)致類似如下的編譯錯誤: no new variables on left side of :=

變量的賦值
var v10 int #定義變量
v10 = 1 #變量賦值

go語言提供多重賦值功能,比如下面這個交換i和j變量的語句: i, j = j, i

在不支持多重賦值的語言中,交互兩個變量的內(nèi)容需要引入一個中間變量: t = i; i = j; j = t;

匿名變量

我們在使用傳統(tǒng)的強類型語言編程時,經(jīng)常會出現(xiàn)這種情況,即在調(diào)用函數(shù)時為了獲取一個 值,卻因為該函數(shù)返回多個值而不得不定義一堆沒用的變量。在Go中這種情況可以通過結(jié)合使 用多重返回和匿名變量來避免這種丑陋的寫法,讓代碼看起來更加優(yōu)雅。

假設(shè)GetName()函數(shù)的定義如下,它返回3個值,分別為firstName、lastName和 nickName:

func GetName() (firstName, lastName, nickName string) {  
    return "May", "Chan", "Chibi Maruko" 
}

若只想獲得nickName,則函數(shù)調(diào)用語句可以用如下方式編寫: _, _, nickName := GetName()

這種用法可以讓代碼非常清晰,基本上屏蔽掉了可能混淆代碼閱讀者視線的內(nèi)容,從而大幅 降低溝通的復(fù)雜度和代碼維護的難度。


常量

常量是指編譯期間就已知且不可改變的值。常量可以是數(shù)值類型(包括整型、 浮點型和復(fù)數(shù)類型)、布爾類型、字符串類型等。

字面常量

程序中硬編碼的常量

-12 
3.14159265358979323846 // 浮點類型的常量 
3.2+12i      // 復(fù)數(shù)類型的常量 
true      // 布爾類型的常量 
"foo"     // 字符串常量

Go語言的字面常量更接近我們自然語言中的常量概念,它是無類型的。只要這個常量在相應(yīng)類型的值域 范圍內(nèi),就可以作為該類型的常量

常量定義

通過關(guān)鍵字const定義常量

const Pi float64 = 3.14159265358979323846  
const zero = 0.0             // 無類型浮點常量 
const (     
    size int64 = 1024     
    eof = -1                // 無類型整型常量 
)  
const u, v float32 = 0, 3    // u = 0.0, v = 3.0,常量的多重賦值 
const a, b, c = 3, 4, "foo"  // a = 3, b = 4, c = "foo", 無類型整型和字符串常量

//常量賦值是一個編譯期行為,所以右值也可以是一個在編譯期運算的常量表達式:
const s = 1000 * 60
預(yù)定義常量

Go語言預(yù)定義了這些常量:true、false和iota。

iota比較特殊,可以被認為是一個可被編譯器修改的常量,在每一個const關(guān)鍵字出現(xiàn)時被 重置為0,然后在下一個const出現(xiàn)之前,每出現(xiàn)一次iota,其所代表的數(shù)字會自動增1。

 const (          // iota被重設(shè)為0    
     c0 = iota    // c0 == 0     
     c1 = iota    // c1 == 1    
     c2 = iota    // c2 == 2 
 )   
  

const (     
    u         = iota * 42   // u == 0     
    v float64 = iota * 42   // v == 42.0 
)

看完上述內(nèi)容,你們掌握Go 語言中怎么定義變量常量的的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

本文題目:Go語言中怎么定義變量常量的
地址分享:http://muchs.cn/article46/ipjdhg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、網(wǎng)站策劃、自適應(yīng)網(wǎng)站Google、外貿(mào)建站、網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計