国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Go語言】Go語言中的變量和常量

這篇具有很好參考價值的文章主要介紹了【Go語言】Go語言中的變量和常量。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Go語言中的變量和常量

1 變量

變量相當于是對一塊數(shù)據(jù)存儲空間的命名,程序可以通過定義一個變量來申請一塊數(shù)據(jù)存儲空間,之后可以通過引用變量名來使用這塊存儲空間。

Go 語言是強類型靜態(tài)語言,所以變量的聲明與賦值方式與 PHP/Python 等動態(tài)語言相比有很大的區(qū)別。

  • 動態(tài)語言(弱類型語言)是運行時才確定數(shù)據(jù)類型的語言,變量在使用之前無需申明類型,通常變量的值是被賦值的那個值的類型。比如Php、Asp、JavaScript、Python、Perl等等。

  • 靜態(tài)語言(強類型語言)是編譯時變量的數(shù)據(jù)類型就可以確定的語言,大多數(shù)靜態(tài)語言要求在使用變量之前必須生命數(shù)據(jù)類型。比如Java、C、C++、C#等。

1.1 變量聲明和規(guī)則

Go 語言引入了關鍵字 var,并且將數(shù)據(jù)類型信息放在變量名之后,此外,變量聲明語句不需要使用分號作為結束符,例如聲明一個類型為 int 的變量 v1,示例如下:

var v1 int
// 也可以將若干需要聲明的變量放置在一起
var (
 ? ?v1 int
 ? ?v2 string
)

Go 語言支持多種數(shù)據(jù)類型,這里先簡單展示一下

var v1 int              // 整型
var v2 string           // 字符串
var v3 bool             // 布爾類型
var v4 [10]int          // 數(shù)組,數(shù)組元素類型為整型
var v5 struct (         // 結構體,成員變量 f 的類型為64位浮點型號
 ? ?f float64
)
var v6 *int             // 指針,指向整型
var v7 map[string]int   // map(字典),key為字符串類型,value為整型
var v8 func(a int) int  // 函數(shù),參數(shù)類型為整型,返回類型為整型

變量在聲明之后,系統(tǒng)會自動將變量值初始化為對應類型的零值,這里輸出一下上面定義的變量。

【Go語言】Go語言中的變量和常量,Go語言,golang,開發(fā)語言,后端

如果變量名包含多個單詞,Go 語言變量命名規(guī)則遵循駝峰命名法,即首個單詞小寫,每個新單詞的首字母大寫,如 userName,但如果你的全局變量希望能夠被外部包所使用,則需要將首個單詞的首字母也大寫。

1.2 變量初始化

如果聲明變量時想要同時對變量值進行初始化,可以通過以下這些方式:

var v1 int = 10 // 方式一,常規(guī)的初始化操作
var v2 = 10 ? ? // 方式二,此時變量類型會被編譯器自動推導出來
v3 := 10 ? ? ? ?// 方式三,可以省略 var,編譯器可以自動推導出v3的類型

代碼測試如下:

【Go語言】Go語言中的變量和常量,Go語言,golang,開發(fā)語言,后端

這里注意Go語言變量聲明使用的符號是:=,而不是=。

變量進行初始化時,可以不必指定數(shù)據(jù)類型,這里讓Go看上像是靜態(tài)類型語言,但是與 PHP/Python/JavaScript 等動態(tài)語言不同的是,這個推導是在編譯期做的,而不是運行時,因此 Go 語言還是不折不扣的靜態(tài)語言。

另外,出現(xiàn)在 := 運算符左側的變量應該是未聲明過的,否則會導致編譯錯誤,比如下面這個寫法:

var i int
i := 2

會出現(xiàn)如下的報錯

【Go語言】Go語言中的變量和常量,Go語言,golang,開發(fā)語言,后端

1.3 變量賦值與多重賦值

在 Go 語言中,變量初始化和變量賦值是兩個不同的概念,變量初始化及變量聲明和賦值為一條語句,變量賦值則是先聲明變量,再對其進行賦值,初始化只能執(zhí)行一次,賦值則可以執(zhí)行多次,下面是變量賦值過程:

// 變量賦值
var v10 int 
v10 = 123
// 多重賦值
i,j = j,i

代碼測試:

【Go語言】Go語言中的變量和常量,Go語言,golang,開發(fā)語言,后端

1.4 匿名變量

我們在使用傳統(tǒng)的強類型語言編程時,經(jīng)常會出現(xiàn)這種情況,即在調(diào)用函數(shù)時為了獲取一個值,卻因為該函數(shù)返回多個值而不得不定義一堆沒用的變量。

匿名變量語法:

func GetName() (userName, nickName string) {
    return "南歌", "EuanSu"
}
?
func AnonymousVariables() {
    // 匿名變量
    // GetName返回兩個值,分別是username和nickName,
    // 其中nickName是string類型,而GetName()函數(shù)中沒有使用nickName,
    // 此時nickName就是一個匿名變量,它不占用命名空間,不會分配內(nèi)存,
    // 因此不會產(chǎn)生任何開銷。
    _, nickName := GetName()
    fmt.Printf("nickName value is %s\n", nickName)
}

【Go語言】Go語言中的變量和常量,Go語言,golang,開發(fā)語言,后端

1.5 變量的作用域

每個變量在程序中都有一定的作用范圍,稱之為作用域。如果一個變量在函數(shù)體外聲明,則被認為是全局變量,可以在整個包甚至外部包(變量名以大寫字母開頭)使用,不管你聲明在哪個源文件里或在哪個源文件里調(diào)用該變量。在函數(shù)體內(nèi)聲明的變量稱之為局部變量,它們的作用域只在函數(shù)體內(nèi),函數(shù)的參數(shù)和返回值變量也是局部變量。

盡管變量的標識符必須是唯一的,但你可以在某個代碼塊的內(nèi)層代碼塊中使用相同名稱的變量,此時外部的同名變量將會暫時隱藏(結束內(nèi)部代碼塊的執(zhí)行后隱藏的外部同名變量又會出現(xiàn),而內(nèi)部同名變量則被釋放),任何的操作都只會影響內(nèi)部代碼塊的局部變量。

2 常量

在 Go 語言中,常量是指編譯期間就已知且不可改變的值,常量只可以是數(shù)值類型(包括整型、 浮點型和復數(shù)類型)、布爾類型、字符串類型等標量類型。Go 語言中,我們可以通過 const 關鍵字來定義常量(遵循 C 語言的約定)。

2.1 常量的定義

通過 const 關鍵字定義常量時,可以指定常量類型,也可以省略(編譯時會自動推導),常見的常量定義方式如下:

const Pi float64 = 3.14159265358979323846 
const zero = 0.0 // 無類型浮點常量 
const ( ? ? ? ? ?// 通過一個 const 關鍵字定義多個常量,和 var 類似
 ? ?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", 無類型整型和字符串常量

代碼執(zhí)行測試:

【Go語言】Go語言中的變量和常量,Go語言,golang,開發(fā)語言,后端

由于常量的賦值是編譯時期執(zhí)行的,因此賦值的操作中不能出現(xiàn)任何需要運行才能得到結果的函數(shù),例如如下語句就會導致編譯錯誤:

func GetNumber() int {
 ? ?return 100
}
const num = GetNumber()

【Go語言】Go語言中的變量和常量,Go語言,golang,開發(fā)語言,后端

2.2 預定義常量

GO語言預定義了常量:true、false 和 iota。

iota 比較特殊,認為是一個能夠被編譯器修改的常量,每一個 const 關鍵字出現(xiàn)時被重置為 0,每出現(xiàn)一次 iota,其所代表的數(shù)字就會自動加1.

const ( ? ?// iota 被重置為 0
 ? ?c0 = iota ? // c0 = 0
 ? ?c1 = iota ? // c1 = 1
 ? ?c2 = iota ? // c2 = 2
)
const (
 ? ?u = iota * 2; ?// u = 0
 ? ?v = iota * 2; ?// v = 2
 ? ?w = iota * 2; ?// w = 4
)
const x = iota; ?// x = 0
const y = iota; ?// y = 0

代碼運行測試:

【Go語言】Go語言中的變量和常量,Go語言,golang,開發(fā)語言,后端

如果兩個 const 的賦值語句的表達式是一樣的,那么還可以省略后一個賦值表達式。因此,上面的前兩個 const 語句可簡寫為:

const ( 
 ? ?c0 = iota 
 ? ?c1 
 ? ?c2 
)
const ( 
 ? ?u = iota * 2 
 ? ?v 
 ? ?w 
)

代碼運行測試:

【Go語言】Go語言中的變量和常量,Go語言,golang,開發(fā)語言,后端

2.3 枚舉

此外,常量還可以用于枚舉。

枚舉中包含了一系列相關的常量,比如下面關于一個星期中每天的定義。Go 語言并不支持其他語言用于表示枚舉的 enum 關鍵字,而是通過在 const 后跟一對圓括號定義一組常量的方式來實現(xiàn)枚舉。

下面是一個常規(guī)的 Go 語言枚舉表示法,其中定義了一系列整型常量:

const (
 ? ?Sunday = iota 
 ? ?Monday 
 ? ?Tuesday 
 ? ?Wednesday 
 ? ?Thursday 
 ? ?Friday 
 ? ?Saturday 
 ? ?numberOfDays
)

代碼運行測試:

【Go語言】Go語言中的變量和常量,Go語言,golang,開發(fā)語言,后端

2.4 常量的作用域

和函數(shù)體外聲明的變量一樣,以大寫字母開頭的常量在包外可見(類似于 public 修飾的類屬性),比如上面介紹的 Pi、Sunday 等,而以小寫字母開頭的常量只能在包內(nèi)訪問(類似于通過 protected 修飾的類屬性),比如 zero、numberOfDays 等。

函數(shù)體內(nèi)聲明的常量只能在函數(shù)體內(nèi)生效。文章來源地址http://www.zghlxwxcb.cn/news/detail-833616.html

到了這里,關于【Go語言】Go語言中的變量和常量的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 【30天熟悉Go語言】4 Go的變量、常量、運算符

    【30天熟悉Go語言】4 Go的變量、常量、運算符

    Go系列文章: GO開篇:手握Java走進Golang的世界 2 Go開發(fā)環(huán)境搭建、Hello World程序運行 3 Go編程規(guī)約和API包 Go專欄傳送鏈接:https://blog.csdn.net/saintmm/category_12326997.html 變量相當于內(nèi)存中一個數(shù)據(jù)存儲空間的標識。 變量的使用分三步:聲明、賦值、使用。 變量的聲明 采用 var 變量名

    2024年02月07日
    瀏覽(33)
  • Rust 筆記:Rust 語言中的常量與變量

    Rust 筆記 Rust 語言中的常量與變量 作者 : 李俊才 (jcLee95):https://blog.csdn.net/qq_28550263?spm=1001.2101.3001.5343 郵箱 : 291148484@163.com 本文地址 :https://blog.csdn.net/qq_28550263/article/details/130875912 【介紹】:本文介紹 Rust 語言中的常量與變量。 上一節(jié):《 上一節(jié)標題 》 | 下一節(jié):《

    2024年02月06日
    瀏覽(21)
  • 初始Go語言2【標識符與關鍵字,操作符與表達式,變量、常量、字面量,變量作用域,注釋與godoc】

    ??go變量、常量、自定義類型、包、函數(shù)的命名方式必須遵循以下規(guī)則: 首字符可以是任意Unicode字符或下劃線。 首字符之外的部分可以是Unicode字符、下劃線或數(shù)字。 名字的長度無限制。 理論上名字里可以有漢字,甚至可以全是漢字,但實際中不要這么做。 Go語言

    2023年04月09日
    瀏覽(89)
  • 【Golang入門教程】Go語言變量的初始化

    【Golang入門教程】Go語言變量的初始化

    強烈推薦 前些天發(fā)現(xiàn)了一個巨牛的人工智能學習網(wǎng)站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉(zhuǎn)到網(wǎng)站: 人工智能 推薦一個個人工作,日常中比較常用的人工智能工具,無需魔法,忍不住分享一下給大家。點擊跳轉(zhuǎn)到網(wǎng)站: 人工智能工具 引言 在Go語言中,變量

    2024年04月17日
    瀏覽(105)
  • 編程筆記 Golang基礎 010 常量和變量

    在 Go 語言中,常量(Constant)是一個固定的值,在程序運行期間不可被修改。它們通常用來表示那些在整個程序執(zhí)行過程中不會變化的數(shù)值或其他類型的數(shù)據(jù)。在 Go 語言中,變量是用來存儲數(shù)據(jù)的容器。 在 Go 語言中,常量(Constant)是一個固定的值,在程序運行期間不可被

    2024年02月21日
    瀏覽(19)
  • 二、GoLang輸出HelloWorld、基本數(shù)據(jù)類型、變量常量定義、基本類型轉(zhuǎn)換

    go語言中,想要輸出內(nèi)容到控制臺,package必須是main,包括方法名也必須是main, go語言輸出的語法是 fmt 庫。 Go語言的基本類型有: boolean:布爾類型 true / false string :字符串類型 數(shù)值型: int8:有符號8位整型(-128到127)長度 int16:有符號16位整型(-32768到32767)長度 int32:有

    2024年02月09日
    瀏覽(25)
  • Go類型全解:常量與變量大全!

    Go類型全解:常量與變量大全!

    本篇文章深入探討了 Go 語言中類型確定值、類型不確定值以及對應類型轉(zhuǎn)換的知識點,后續(xù)充分解析了常量與變量及其高級用法,并舉出豐富的案例。 關注公眾號【TechLeadCloud】,分享互聯(lián)網(wǎng)架構、云服務技術的全維度知識。作者擁有10+年互聯(lián)網(wǎng)服務架構、AI產(chǎn)品研發(fā)經(jīng)驗、

    2024年02月09日
    瀏覽(25)
  • 如何在Go中使用變量和常量

    變量 是一個需要掌握的重要編程概念。它們是符號,代表你在程序中使用的值。 本教程將介紹一些變量基礎知識和在您創(chuàng)建的Go程序中使用它們的最佳實踐。 用技術術語來說,變量是將一個存儲位置賦值給一個與符號名稱或標識符相關聯(lián)的值。在計算機程序中,我們使用變

    2024年02月07日
    瀏覽(23)
  • 【Go基礎】編譯、變量、常量、基本數(shù)據(jù)類型、字符串

    【Go基礎】編譯、變量、常量、基本數(shù)據(jù)類型、字符串

    面試題文檔下鏈接點擊這里免積分下載 go語言入門到精通點擊這里免積分下載 使用 go build 1.在項目目錄下執(zhí)行 2.在其他路徑下編譯 go build ,需要再后面加上項目的路徑(項目路徑從GOPATH/src后開始寫起,編譯之后的可執(zhí)行文件就保存再當前目錄) 3.打包的時候自定義名字:

    2024年02月09日
    瀏覽(28)
  • 【Golang】go編程語言適合哪些項目開發(fā)?

    【Golang】go編程語言適合哪些項目開發(fā)?

    前言 在當今數(shù)字化時代,軟件開發(fā)已成為各行各業(yè)的核心需求之一。 而選擇適合的編程語言對于項目的成功開發(fā)至關重要。 本文將重點探討Go編程語言適合哪些項目開發(fā),以幫助讀者在選擇合適的編程語言時做出明智的決策。 Go 編程語言適合哪些項目開發(fā)? Go是由Google開發(fā)

    2024年02月04日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包