Go語言類型轉(zhuǎn)換和斷言的區(qū)別是什么-創(chuàng)新互聯(lián)

本篇內(nèi)容介紹了“Go語言類型轉(zhuǎn)換和斷言的區(qū)別是什么”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

成都創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:做網(wǎng)站、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的東城網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

類型轉(zhuǎn)換和斷言的區(qū)別

我們知道,Go語言中不允許隱式類型轉(zhuǎn)換,也就是說=兩邊,不允許出現(xiàn)類型不相同的變量。

類型轉(zhuǎn)換、類型斷言本質(zhì)都是把一個類型轉(zhuǎn)換成另外一個類型。不同之處在于,類型斷言是對接口變量進行的操作。

類型轉(zhuǎn)換

對于類型轉(zhuǎn)換而言,轉(zhuǎn)換前后的兩個類型要相互兼容才行。類型轉(zhuǎn)換的語法為:

<結(jié)果類型>:=<目標類型>(<表達式>)

斷言

前面說過,因為空接口interface{}沒有定義任何函數(shù),因此Go中所有類型都實現(xiàn)了空接口。當(dāng)一個函數(shù)的形參是interface{},那么在函數(shù)中,需要對形參進行斷言,從而得到它的真實類型。

斷言的語法為:

//安全類型斷言

<目標類型的值>,<布爾參數(shù)>:=<表達式>.(目標類型)

//非安全類型斷言

<目標類型的值>:=<表達式>.(目標類型)

類型轉(zhuǎn)換和類型斷言有些相似,不同之處,在于類型斷言是對接口進行的操作。

斷言其實還有另一種形式,就是用在利用switch語句判斷接口的類型。每一個case會被順序地考慮。當(dāng)命中一個case時,就會執(zhí)行case中的語句,因此case語句的順序是很重要的,因為很有可能會有多個case匹配的情況。

fmt.Println函數(shù)的參數(shù)是interface。對于內(nèi)置類型,函數(shù)內(nèi)部會用窮舉法,得出它的真實類型,然后轉(zhuǎn)換為字符串打印。而對于自定義類型,首先確定該類型是否實現(xiàn)了String()方法,如果實現(xiàn)了,則直接打印輸出String()方法的結(jié)果;否則,會通過反射來遍歷對象的成員進行打印。

類型T只有接受者是T的方法;而類型*T擁有接受者是T和*T的方法。語法上T能直接調(diào)*T的方法僅僅是Go的語法糖。

所以,Student結(jié)構(gòu)體定義了接受者類型是值類型的String()方法時,通過

均可以按照自定義的格式來打印。

如果Student結(jié)構(gòu)體定義了接受者類型是指針類型的String()方法時,只有通過

才能按照自定義的格式打印。

“Go語言類型轉(zhuǎn)換和斷言的區(qū)別是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

本文標題:Go語言類型轉(zhuǎn)換和斷言的區(qū)別是什么-創(chuàng)新互聯(lián)
標題來源:http://bm7419.com/article28/ddhpjp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT網(wǎng)站設(shè)計、外貿(mào)建站、網(wǎng)站建設(shè)云服務(wù)器、網(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ù)器托管