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

《Go 語(yǔ)言第一課》課程學(xué)習(xí)筆記(九)

這篇具有很好參考價(jià)值的文章主要介紹了《Go 語(yǔ)言第一課》課程學(xué)習(xí)筆記(九)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

常量:Go 在“常量”設(shè)計(jì)上的創(chuàng)新有哪些?

  • Go 語(yǔ)言在常量方面的創(chuàng)新包括下面這幾點(diǎn):
    • 支持無(wú)類型常量;
    • 支持隱式自動(dòng)轉(zhuǎn)型;
    • 可用于實(shí)現(xiàn)枚舉。

常量

  • Go 語(yǔ)言的常量是一種在源碼編譯期間被創(chuàng)建的語(yǔ)法元素。這是在說(shuō)這個(gè)元素的值可以像變量那樣被初始化,但它的初始化表達(dá)式必須是在編譯期間可以求出值來(lái)的。
    • Go 常量一旦聲明并被初始化后,它的值在整個(gè)程序的生命周期內(nèi)便保持不變。
    • 我們?cè)诓l(fā)設(shè)計(jì)時(shí)不用考慮常量訪問(wèn)的同步,并且被創(chuàng)建并初始化后的常量還可以作為其他常量的初始表達(dá)式的一部分。
  • Go 是使用 var 關(guān)鍵字聲明變量的。在常量這里,Go 語(yǔ)言引入 const 關(guān)鍵字來(lái)聲明常量。而且,和 var 支持單行聲明多個(gè)變量,以及以代碼塊形式聚合變量聲明一樣,const 也支持單行聲明多個(gè)常量,以及以代碼塊形式聚合常量聲明的形式:
    const Pi float64 = 3.14159265358979323846 // 單行常量聲明
    // 以 const 代碼塊形式聲明常量
    const (
    	size int64 = 4096
    	i, j, s = 13, 14, "bar" // 單行聲明多個(gè)常量
    )
    
  • Go 語(yǔ)言規(guī)范規(guī)定,Go 常量的類型只局限于 Go 基本數(shù)據(jù)類型,包括數(shù)值類型、字符串類型,以及只有兩個(gè)取值(true 和 false)的布爾類型。

無(wú)類型常量

  • Go 語(yǔ)言對(duì)類型安全是有嚴(yán)格要求的:即便兩個(gè)類型擁有著相同的底層類型,但它們?nèi)匀皇遣煌臄?shù)據(jù)類型,不可以被相互比較或混在一個(gè)表達(dá)式中進(jìn)行運(yùn)算。這一要求不僅僅適用于變量,也同樣適用于有類型常量(Typed Constant)中。
  • 有類型常量與變量混合在一起進(jìn)行運(yùn)算求值的時(shí)候,也必須遵守類型相同這一要求,否則我們只能通過(guò)顯式轉(zhuǎn)型才能讓代碼正常工作。
  • 常量在聲明時(shí)并沒(méi)有顯式地被賦予類型,在 Go 中,這樣的常量就被稱為無(wú)類型常量(Untyped Constant)。
  • 無(wú)類型常量也不是說(shuō)就真的沒(méi)有類型,它也有自己的默認(rèn)類型,不過(guò)它的默認(rèn)類型是根據(jù)它的初值形式來(lái)決定的。

隱式轉(zhuǎn)型

  • 隱式轉(zhuǎn)型說(shuō)的就是,對(duì)于無(wú)類型常量參與的表達(dá)式求值,Go 編譯器會(huì)根據(jù)上下文中的類型信息,把無(wú)類型常量自動(dòng)轉(zhuǎn)換為相應(yīng)的類型后,再參與求值計(jì)算,這一轉(zhuǎn)型動(dòng)作是隱式進(jìn)行的。
  • 但由于轉(zhuǎn)型的對(duì)象是一個(gè)常量,所以這并不會(huì)引發(fā)類型安全問(wèn)題,Go 編譯器會(huì)保證這一轉(zhuǎn)型的安全性。

實(shí)現(xiàn)枚舉

  • Go 語(yǔ)言其實(shí)并沒(méi)有原生提供枚舉類型,在 Go語(yǔ)言中,我們可以使用 const 代碼塊定義的常量集合,來(lái)實(shí)現(xiàn)枚舉。
  • 首先,Go 的 const 語(yǔ)法提供了“隱式重復(fù)前一個(gè)非空表達(dá)式”的機(jī)制:
    const (
    	Apple, Banana = 11, 22
    	Strawberry, Grape
    	Pear, Watermelon
    )
    
    • 這個(gè)代碼里,常量定義的后兩行并沒(méi)有被顯式地賦予初始值,所以 Go 編譯器就為它們自動(dòng)使用上一行的表達(dá)式:
      const (
      	Apple, Banana = 11, 22
      	Strawberry, Grape = 11, 22
      	Pear, Watermelon = 11, 22
      )
      
    • 不過(guò),僅僅是重復(fù)上一行顯然無(wú)法滿足“枚舉”的要求,因?yàn)槊杜e類型中的每個(gè)枚舉常量的值都是唯一的。所以,Go 在這個(gè)特性的基礎(chǔ)上又提供了“神器”:iota。
      • iota 是 Go 語(yǔ)言的一個(gè)預(yù)定義標(biāo)識(shí)符,它表示的是 const 聲明塊(包括單行聲明)中,每個(gè)常量所處位置在塊中的偏移值(從零開(kāi)始)。
      • 同時(shí),每一行中的 iota 自身也是一個(gè)無(wú)類型常量,可以自動(dòng)參與到不同類型的求值過(guò)程中來(lái),不需要我們?cè)賹?duì)它進(jìn)行顯式轉(zhuǎn)型操作。
        const (
        	Apple, Banana = iota, iota + 10 // 0, 10 (iota = 0)
        	Strawberry, Grape // 1, 11 (iota = 1)
        	Pear, Watermelon // 2, 12 (iota = 2)
        )
        
    • 如果一個(gè) Go 源文件中有多個(gè) const 代碼塊定義的不同枚舉,每個(gè) const 代碼塊中的 iota 也是獨(dú)立變化的,也就是說(shuō),每個(gè) const 代碼塊都擁有屬于自己的 iota。
    • 每個(gè) iota 的生命周期都始于一個(gè) const 代碼塊的開(kāi)始,在該 const 代碼塊結(jié)束時(shí)結(jié)束。

文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-664629.html

到了這里,關(guān)于《Go 語(yǔ)言第一課》課程學(xué)習(xí)筆記(九)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 《Go 語(yǔ)言第一課》課程學(xué)習(xí)筆記(八)

    《Go 語(yǔ)言第一課》課程學(xué)習(xí)筆記(八)

    Go 語(yǔ)言的類型大體可分為基本數(shù)據(jù)類型、復(fù)合數(shù)據(jù)類型和接口類型這三種。 其中,我們?nèi)粘?Go 編碼中使用最多的就是基本數(shù)據(jù)類型,而基本數(shù)據(jù)類型中使用占比最大的又是數(shù)值類型。 Go 語(yǔ)言的整型,主要用來(lái)表示現(xiàn)實(shí)世界中整型數(shù)量等。它可以分為平臺(tái)無(wú)關(guān)整型和平臺(tái)相關(guān)

    2024年02月12日
    瀏覽(40)
  • 《Go 語(yǔ)言第一課》課程學(xué)習(xí)筆記(二)

    在 Go 語(yǔ)言中編寫一個(gè)可以打印出“hello,world”的示例程序,我們只需要簡(jiǎn)單兩步,一是創(chuàng)建文件夾,二是開(kāi)始編寫和運(yùn)行。 通常來(lái)說(shuō),Go 不會(huì)限制我們存儲(chǔ)代碼的位置,建議創(chuàng)建一個(gè)可以集合所有項(xiàng)目的根文件夾(比如:~/goprojects),然后將所有的項(xiàng)目都放在里面。 對(duì)于

    2024年02月12日
    瀏覽(26)
  • C語(yǔ)言入門課程學(xué)習(xí)筆記-6

    C語(yǔ)言入門課程學(xué)習(xí)筆記-6

    本文學(xué)習(xí)自狄泰軟件學(xué)院 唐佐林老師的 C語(yǔ)言入門課程,圖片全部來(lái)源于課程PPT,僅用于個(gè)人學(xué)習(xí)記錄 D,越界 C D 20 2 0 -1 A wrong 賦值越界 B str2[4]初始化為0元素 A wrong C AD strlen(s) ij j– 10 3 abc

    2024年04月28日
    瀏覽(20)
  • [Go]-Go語(yǔ)言第一課

    [Go]-Go語(yǔ)言第一課

    1-1 Go語(yǔ)言特點(diǎn) 1-2 Go語(yǔ)言優(yōu)勢(shì)與劣勢(shì) 1-3 Linux下的安裝 1-4 Linux下的環(huán)境變量 2-1 Go語(yǔ)言-工作區(qū)和GOPATH 2-2 Go語(yǔ)言-源碼文件的分類和含義 2-34 Go語(yǔ)言-代碼包的相關(guān)知識(shí) 3-1 go run 命令簡(jiǎn)介 goc2p項(xiàng)目地址:https://github.com/hyper-carrot/goc2p 用go編寫了ds和pds,用以打印目錄結(jié)構(gòu) 3-4 go run 常用標(biāo)

    2024年02月09日
    瀏覽(16)
  • Ubuntu學(xué)習(xí)---跟著紹發(fā)學(xué)linux課程記錄(第一部分)

    Ubuntu學(xué)習(xí)---跟著紹發(fā)學(xué)linux課程記錄(第一部分)

    Ubuntu的學(xué)習(xí)過(guò)程的筆記分為4個(gè)部分來(lái)記錄: 1、Ubuntu學(xué)習(xí)—跟著紹發(fā)學(xué)linux課程記錄(第1部分) 2、Ubuntu學(xué)習(xí)—跟著紹發(fā)學(xué)linux課程記錄(第2部分) 3、Ubuntu學(xué)習(xí)—跟著紹發(fā)學(xué)linux課程記錄(第3部分) 4、Ubuntu學(xué)習(xí)—跟著紹發(fā)學(xué)linux課程記錄(第4部分) 視頻鏈接: Ubuntu 21.04烏班

    2024年02月10日
    瀏覽(24)
  • 尚硅谷webpack課程學(xué)習(xí)筆記

    尚硅谷webpack課程學(xué)習(xí)筆記

    為什么需要使用打包工具? 開(kāi)發(fā)時(shí)使用的框架、es6 語(yǔ)法 、less 等瀏覽器無(wú)法識(shí)別。 需要經(jīng)過(guò)編譯成瀏覽器能識(shí)別的css、js才可以運(yùn)行。 打包工具可以幫我們編譯,還可以做代碼壓縮、兼容處理、性能優(yōu)化。 常見(jiàn)的打包工具有什么? vite、webpack、glup、grunt webapck最基本的使用

    2024年02月07日
    瀏覽(22)
  • 【學(xué)習(xí)筆記】黑馬程序員Java課程學(xué)習(xí)筆記(更新至第12章---集合)

    【學(xué)習(xí)筆記】黑馬程序員Java課程學(xué)習(xí)筆記(更新至第12章---集合)

    Java語(yǔ)言是美國(guó)Sun公司(Stanford University Network)在1995年推出的計(jì)算機(jī)語(yǔ)言, 2009年Oracle甲骨文公司收購(gòu)Sun公司。Java之父:詹姆斯·高斯林(James Gosling)。 Java可以在任意操作系統(tǒng)上運(yùn)行,Windows、Mac、Linux。我們只需要在運(yùn)行Java應(yīng)用程序的操作系統(tǒng)上,安裝一個(gè)與操作系統(tǒng)對(duì)應(yīng)

    2024年02月07日
    瀏覽(32)
  • 《Kubernetes入門實(shí)戰(zhàn)課》課程學(xué)習(xí)筆記(一)

    《Kubernetes入門實(shí)戰(zhàn)課》課程學(xué)習(xí)筆記(一)

    現(xiàn)在 Kubernetes 已經(jīng)沒(méi)有了實(shí)際意義上的競(jìng)爭(zhēng)對(duì)手,它的地位就如同 Linux 一樣,成為了事實(shí)上的云原生操作系統(tǒng),是構(gòu)建現(xiàn)代應(yīng)用的基石。 現(xiàn)代應(yīng)用是什么? 是微服務(wù),是服務(wù)網(wǎng)格,這些統(tǒng)統(tǒng)要圍繞著容器來(lái)開(kāi)發(fā)、部署和運(yùn)行。 使用容器就必然要用到容器編排技術(shù),在現(xiàn)在只

    2024年02月17日
    瀏覽(57)
  • 《MySQL 實(shí)戰(zhàn) 45 講》課程學(xué)習(xí)筆記(四)

    《MySQL 實(shí)戰(zhàn) 45 講》課程學(xué)習(xí)筆記(四)

    索引的出現(xiàn)其實(shí)就是為了提高數(shù)據(jù)查詢的效率,就像書的目錄一樣。 哈希表 哈希表是一種以鍵 - 值(key-value)存儲(chǔ)數(shù)據(jù)的結(jié)構(gòu),我們只要輸入待查找的值即 key,就可以找到其對(duì)應(yīng)的值即 Value。 哈希的思路很簡(jiǎn)單,把值放在數(shù)組里,用一個(gè)哈希函數(shù)把 key 換算成一個(gè)確定的位

    2024年02月14日
    瀏覽(63)
  • 《kafka 核心技術(shù)與實(shí)戰(zhàn)》課程學(xué)習(xí)筆記(五)

    嚴(yán)格來(lái)說(shuō)這些配置并不單單指 Kafka 服務(wù)器端的配置,其中既有 Broker 端參數(shù),也有主題級(jí)別的參數(shù)、JVM 端參數(shù)和操作系統(tǒng)級(jí)別的參數(shù)。 Broker 端參數(shù)也被稱為靜態(tài)參數(shù)(Static Configs): 所謂 靜態(tài)參數(shù) ,是指你必須在 Kafka 的配置文件 server.properties 中進(jìn)行設(shè)置的參數(shù) ,不管你

    2024年02月11日
    瀏覽(23)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包