go 類型斷言_(57)接口的類型斷言

a36b35afe73b726b9000e44c1c643b4d.png

GO提供了一個方法,用來判斷接口的底層值是什么類型

類型斷言 提供了訪問接口值底層具體值的方式。

t := i.(T)

該語句斷言接口值 i 保存了具體類型 T,并將其底層類型為 T 的值賦予變量 t

i 并未保存 T 類型的值,該語句就會觸發一個panic。

為了 判斷 一個接口值是否保存了一個特定的類型,類型斷言可返回兩個值:其底層值以及一個報告斷言是否成功的布爾值。

t, ok := i.(T)

i 保存了一個 T,那么 t 將會是其底層值,而 oktrue

否則,ok 將為 falset 將為 T 類型的零值,程序并不會產生panic。

請注意這種語法和讀取一個Map時的相同之處。

代碼:

package mainimport "fmt"func main() {var i interface{} = "hello"s := i.(string)fmt.Println(s)s, ok := i.(string)fmt.Println(s, ok)f, ok := i.(float64)fmt.Println(f, ok)f = i.(float64) // panicfmt.Println(f)
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/396755.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/396755.shtml
英文地址,請注明出處:http://en.pswp.cn/news/396755.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

使用web3j構建以太坊錢包

創建一個以太坊錢包有多種方式,一般情況下可以通過geth、EtherumWallet等客戶端。對于前端,可以使用插件MetaMask進行創建。這幾種方式技術實現雖然不同,但底層原理是一致的。本文主要介紹如何通過web3j架構創建一個以太坊的冷錢包&#xff0…

Html、CSS、JavaScript 實時效果在線編輯器 - 學習的好工具,算不算?!

關于 二維碼 與 NFC 之間的出身貧賤說太陽火神的漂亮人生 (http://blog.csdn.net/opengl_es)本文遵循“署名-非商業用途-保持一致”創作公用協議轉載請保留此句:太陽火神的漂亮人生 - 本博客專注于 敏捷開發及移動和物聯設備研究:iOS、Android、Html5、…

android自定義更新,Android 完美解決自定義preference與ActivityGroup UI更新的問題

之前發過一篇有關于自定義preference 在ActivityGroup 的包容下出現UI不能更新的問題,當時還以為是Android 的一個BUG 現在想想真可笑 。其實是自己對機制的理解不夠深刻,看來以后要多看看源碼才行。本篇講述內容大致為如何自定義preference 開始到與Act…

vxlan 資料及其在 neutron中的應用

2019獨角獸企業重金招聘Python工程師標準>>> VXLAN 是一個新興的SDN 標準,它定義了一種新的 overlay 網絡,它主要的創造者是 VMware, Cisco 和 Arista。它被設計來消除虛擬化網絡世界中的 VLAN 數目的限制。VXLAN 本身是一個多播標準&#xf…

橫流式冷卻塔計算風量_研討丨卓展標準高效制冷機房技術之影響冷卻塔效率的幾個因素...

集中制冷用空調系統中,單臺冷卻塔的冷卻水量基本上都小于1,000m/h,且裝有淋水填料的橫流機械通風開式居多。本文將已橫流開式冷卻塔為對象,探討影響其效率的幾個因素。橫流開式冷卻塔示意圖如下所示:橫流開式冷卻塔示意圖 Fig 01說…

我是培訓出來的我怕誰

引子: 江小峰是我帶過的徒弟中跟我最久,也是最聰明的一個。 他一個高中生,沒上過大學,高中畢業后在老家賣了三年電腦,天天給人裝操作系統,有天他在網上看到某培訓機構招生簡介,一時沖動揣上三年血汗錢&…

android平臺gallery2應用分析,Android5.1圖庫Gallery2代碼分析數據加載流程

圖片數據加載流程。Gallery---->GalleryActivity------>AlbumSetPage------->AlbumPage--------->PhotoPage相冊集 照片集 某張圖片1,AlbumSetPage.javaprivate void initializeData(Bundle data) {String mediaPath data…

python開課吧1980課程_開課吧的課程怎么樣?

就那那些編程開發課來說。現在網絡上充斥著大量的編程開發課程,什么python的,java的,c的,而且名字一個比一個夸張,21天精通c,7天熟練運用java,3天掌握python核心代碼,這些課程標題簡…

專業概念

1.JDBC: java數據庫連接(JDBC)用于在java程序中實現數據庫的操作功能,它提供了執行sql語句,訪問各種數據庫的方法,并為各種不同的數據庫提供統一的操作接口,java.sql包中 包含了jdbc操作數據庫的所有類 2.…

前端解決跨域問題的8種方案

2019獨角獸企業重金招聘Python工程師標準>>> 1.同源策略如下: URL說明是否允許通信http://www.a.com/a.js http://www.a.com/b.js同一域名下允許http://www.a.com/lab/a.js http://www.a.com/script/b.js同一域名下不同文件夾允許http://www.a.com:8000/…

k歌的錄音伴奏合成技術如何實現_K歌神器,用唱吧麥克風攀登天籟高峰

自從喜歡上了手機K歌,經常會上傳一些自己的作品,起初無論音質如何都是樂在其中,可時間久了發現回放效果確實不如那榜單上的高手,究其原因想到了麥克風,網上一搜果然有各種K歌輔助工具,多番對比之下&#xf…

淺談內存開辟問題和Block內存問題

我們知道,內存分為棧,堆,塊。 棧中的內存由系統自己釋放,堆是存對象初始化的地方,塊是CPU與內存連接的緩沖器,運行速度比內存快,比CPU慢。 例如,我們NSMutableArray *array [NSMuta…

vue render函數_Vue原理解析(一):Vue到底是什么?

Vue,現在前端的當紅炸子雞,隨著熱度指數上升,實在是有必要從源碼的角度,對它功能的實現原理一窺究竟。個人覺得看源碼主要是看兩樣東西,從宏觀上來說是它的設計思想和實現原理;微觀上來說就是編程技巧&…

scrapy爬蟲-setting.py

# Obey robots.txt rulesROBOTSTXT_OBEY False  不遵從網站的robots.txt法則 # See also autothrottle settings and docsDOWNLOAD_DELAY 3  每次下載延遲3秒,防止造成網站攻擊 # Override the default request headers:DEFAULT_REQUEST_HEADERS { Accept:…

android點擊左上角劃出,使用Android中的Path和RectF在左上角右上角左下角繪制圓角...

有一個Path#addRoundRect()重載,它接受一個包含八個值的float數組,其中我們可以為四個角中的每一個指定x和y半徑.這些值為[x,y]對,從左上角開始,順時針繞其余部分.對于我們想要舍入的那些角,我們將該對的兩個值都設置為半徑值,并將它們保留為零,而不是那些.作為一個說明性示例,…

Nodejs微信開發

因為使用了Bot Framework開發了一個小功能,它目前支持了Skype\Teams\Slack等,但在國內來講,微信還是一個比較流行的軟件,所以需要接上微信 原來開發Bot的時候使用的是.Net開發的,這次我決定使用Nodejs開發一個簡單的后…

性別有什么用_為啥不讓男孩玩布娃娃?別讓你的“性別偏見”,給孩子的人生設限...

在養育孩子的過程中,父母總是會犯許多錯誤,更是有一些錯誤會直接使孩子毀掉一生,而性別偏見正是很多家長都會去犯的錯誤,對男孩和女孩有著刻板印象,也正是因為這一點使孩子的潛力和天賦被壓制。前幾天我帶著孩子去逛商…

android的時間代碼怎么寫,Android 日期和時間的使用實例詳解

Android 日期和時間的使用日期和時間的使用;1:彈出框TimePickerDialog,DatePickerDialog2:組件TimePicker,DatePickerTimePickerDialog的使用:通過點擊button顯示圖一,然后用戶可以設置時間DatePickerDialog的使用只需…

andriod studio 查看項目依賴_Intellij IDEA 中如何查看maven項目中所有jar包的依賴關系圖...

Maven 組件界面介紹如上圖標注 1 所示,為常用的 Maven 工具欄,其中最常用的有:第一個按鈕:Reimport All Maven Projects 表示根據 pom.xml 重新載入項目。一般單我們在 pom.xml 添加了依賴包或是插件的時候,發現標注 4…

Springboot 2.0.0單元測試

1. 引入spring-boot-starter-test包 1 <?xml version"1.0" encoding"UTF-8"?>2 <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"3 xsi:schemaLocation"…