go語言day10 接口interface 類型斷言 type關鍵字

? 接口:

? ? ? ? ? ? ? ? 空接口類型:

? ? ? ? ? ? ? ? ? ? ? ? 要實現一個接口,就要實現該接口中的所有方法。因為空接口中沒有方法,所以自然所有類型都實現了空接口。那么就可以使用空接口類型變量去接受所有類型對象。

????????????????????????類比java,有點像Object類型的概念,所有類型都是Object類型的間接子類,可以用Object類型變量去接收任意對象。

? ? ? ? type A? interface{}

? ? ? ? ?var? obj1? ? ?A? ?=? Cat{ "string字符串"}

? ? ? ? ?var? obj2? ? =? ?123

? ? ? ? ? ? ?


? ? ???????????fmt.Println()?fmt.Println()方法的參數是 空接口類型的切片,意思就是可以接收任意類型對象,并且數量是一個或多個任意類型對象。



? ? ? ? ? ? 接口的實現和調用:

? ? ? ? ? ? ? ? ? ? ? ? 實現接口

????????????????????????????????要實現一個接口,就要實現該接口中的所有方法。

?? ? ? ? ? ? ????????? ? ?自定義的Cat類型實現了test1() test2() test3()方法,所以Cat類型實現了接口A,接口B,接口C。

? ? ? ? ? ? ? ? ? ? ? ? 調用接口

? ? ? ? ? ? ? ? ????????默認創建一個對象:? var cat? Cat? =Cat { }。?test1(),test2(),test3()方法都是Cat類型本身的,自然可以調用。

? ? ? ? ? ? ? ? ? ? ? ? 如果用? A類型去接受cat對象,也就是 Var? catA? A? = cat,那么這個對象是A接口類型的實現類?,只能調用A接口類型的方法。

? ? ? ? ? ? ? ? ? ? ? ? 類比java,就是java的多態。聲明一種類型叫生物,這種生物行為是能叫喊,現實對象有一只貓也能叫,生物的實例對象可以是這只貓,但是呢這個生物只能喵喵叫,計算機只知道這個對象類型是生物,計算機不知道它實際是個貓,只把它當作生物類型處理的話,自然只能執行生物所包含的方法。

?????????????????????????? ? ? ?



? ? ? ? 類型斷言

? ? ?創建斷言

? ? ? ? ? ? ?1)? ?? obj , judgeValue? ?:=? 對象. ( 類型)??

? ? ? ? ? ? ?2)? ? ? ?switch? obj :=? 對象.(類型){

? ? ? ? ? ? ? ? ? ? ? ? ????????case? 實際類型1:? ? ?fmt.Print(obj)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? case? 實際類型2:? ? ?fmt.Print(obj)



? ? ? ? type關鍵字

? ? ? ? ? ? ? ? ? ? ? 創建結構體類型

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? type? Class? ?struct{ }

? ? ? ? ? ? ? ? ? ? ? 創建新類型??

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? type? Class2? ?Class

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 新類型Class2 的屬性方法和Class一致,但是仍然是兩種不同的類型.

? ? ? ? ? ? ? ? ? ? ? 創建類型別名

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? type? Class2? =? Class

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 給Class類型起一個別名,兩個名稱都表示同一種類型,只是名字不一樣.

? ? ? ? ? ? ? ? ? ? ? 創建函數類型

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? type? myfunc? func(string)(string);


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

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

相關文章

免費去馬賽克軟件,親測支持視頻和圖片,這AI功能逆天了!

有小伙伴私信問阿星有什么去除馬賽克的免費軟件,求推薦好用的去馬賽克軟件。 市面上去馬賽克的軟件多如牛毛,但真正好用的真不多,而免費的是更少。今天阿星就分享一款 AI智能去馬賽克軟件,免費使用。軟件支持去除圖片和視頻的馬賽…

51單片機STC89C52RC——15.1 AD/DA(模數數模)

目的/效果 1 LCD1602 顯示 可調電阻、光敏電阻、熱敏電阻值(AD) 2 模擬信號控制LED明暗(DA) 一,STC單片機模塊 二,AD/DA 2.1 AD/DA 介紹 AD(Analog to Digital):模擬…

第1章 項目背景(學成在線),項目介紹,環境搭建

1.項目背景 1.1 在線教育市場環境 以下內容摘自https://report.iresearch.cn/content/2021/01/358854.shtml 在線教育行業是一個有著極強的廣度和深度的行業,從校內到校外;從早幼教到職業培訓;從教育工具到全信息化平臺等等。 2020年的新…

用Excel處理數據圖像,出現交叉怎么辦?

一、問題描述 用excel制作X-Y散點圖,意外的出現了4個交叉點,而實際上的圖表數據是沒有交叉的。 二、模擬圖表 模擬部分數據,并創建X-Y散點圖,數據區域,X軸數據是依次增加的,因此散點圖應該是沒有交叉的。…

linux centos 安裝niginx并且添加ssl(https)模塊

文章目錄 前言一、nginx安裝教程1.流程步驟 總結 前言 一、nginx安裝教程 1.流程步驟 代碼如下(示例): 1.先下載linux安裝包 2.解壓安裝命令 sudo tar -zxvf nginx-1.20.1.tar.gz3.進入解壓后的目錄 sudo cd nginx-1.20.14.安裝 sudo y…

歡迎加入國家智能網聯汽車創新中心OS開發訓練營大家庭

歡迎加入國家智能網聯汽車創新中心OS開發訓練營大家庭。🚀 導學階段啟動 在正式開營之前,我們特別設置了導學階段,旨在幫助大家更好地迎接頗具挑戰性的項目實戰。導學階段包括一系列精心準備的視頻課程和配套習題。github鏈接:htt…

使用c++進行大規模的矩陣運算

算法通過分塊矩陣乘法和多線程并行計算實現了大規模矩陣乘法的高效計算 #include <iostream> #include <vector> #include <thread> #include <cmath>class LargeMatrixMultiplier { private:const int BLOCK_SIZE 64; // 分塊大小// 輔助函數&…

vue偵聽器watch()

偵聽器watch&#xff08;&#xff09; 偵聽器偵聽數據變化&#xff0c;我們可以使用watch 選項在每次響應式屬性變化時觸發一個函數。 <template><h3>偵聽器watch</h3><hr> <p>{{nessage}}</p> <button click"exchage">…

基于YOLOv10+YOLOP+PYQT的可視化系統,實現多類別目標檢測+可行駛區域分割+車道線分割【附代碼】

文章目錄 前言視頻效果必要環境一、代碼結構1、 訓練參數解析2、 核心代碼解析1.初始化Detector類2. torch.no_grad()3. 復制輸入圖像并初始化計數器4. 調用YOLOv10模型進行目標檢測5. 提取檢測結果信息6. 遍歷檢測結果并在圖像上繪制邊界框和標簽7. 準備輸入圖像以適應End-to-…

MySQL使用LIKE索引是否失效的驗證

1、簡單的示例展示 在MySQL中&#xff0c;LIKE查詢可以通過一些方法來使得LIKE查詢能夠使用索引。以下是一些可以使用的方法&#xff1a; 使用前導通配符&#xff08;%&#xff09;&#xff0c;但確保它緊跟著一個固定的字符。 避免使用后置通配符&#xff08;%&#xff09;&…

【致知功夫 各隨分限】成長需要時間,助人須考慮對方的承受程度

幫助他人需考慮各人的分限所能及的&#xff0c;初學圣學需時間沉淀&#xff0c;存養心性 任何人都應該受到教育&#xff0c;不應受到貧富、貴賤的差異而排除在教育之外&#xff0c;對于不同材質的學生&#xff0c;需要因材施教&#xff1b; 每天都有新的認知&#xff0c;大我…

STL—容器—string類【對其結構和使用的了解】【對oj相關練習的訓練】

STL—容器—string類 其實string類準確來說并不是容器&#xff0c;因為他出現的時間比STL要早&#xff0c;但是也可以說是容器吧。 1.為什么要學習string類&#xff1f; 1.1C語言當中的字符串 C語言中&#xff0c;字符串是以’\0’結尾的一些字符的集合&#xff0c;為了操作…

CTFShow的RE題(三)

數學不及格 strtol 函數 long strtol(char str, char **endptr, int base); 將字符串轉換為長整型 就是解這個方程組了 主要就是 v4, v9的關系&#xff0c; 3v9-(v10v11v12)62d10d4673 v4 v12 v11 v10 0x13A31412F8C 得到 3*v9v419D024E75FF(1773860189695) 重點&…

Windows ipconfig命令詳解,Windows查看IP地址信息

「作者簡介」&#xff1a;冬奧會網絡安全中國代表隊&#xff0c;CSDN Top100&#xff0c;就職奇安信多年&#xff0c;以實戰工作為基礎著作 《網絡安全自學教程》&#xff0c;適合基礎薄弱的同學系統化的學習網絡安全&#xff0c;用最短的時間掌握最核心的技術。 ipconfig 1、基…

Android Studio Run窗口中文亂碼解決辦法

Android Studio Run窗口中文亂碼解決辦法 問題描述&#xff1a; AndroidStudio 編譯項目時Run窗口中文亂碼&#xff0c;如圖&#xff1a; 解決方法&#xff1a; 依次打開菜單&#xff1a;Help--Edit Custom VM Options&#xff0c;打開studio64.exe.vmoptions編輯框&#xf…

計算機專業怎么選擇電腦

現在高考錄取結果基本已經全部出來了&#xff0c;很多同學都如愿以償的進入到了計算機類專業&#xff0c;現在大部分同學都在為自己的大學生活做準備了&#xff0c;其中第一件事就是買電腦&#xff0c;那計算機類專業該怎么選擇電腦呢&#xff1f; 計算機專業是個一類學科&…

網絡中的網絡 NiN

一、全連接層問題 1、卷積層的參數&#xff1a;輸入的通道數乘以輸出的通道數再乘以窗口的高寬 2、全連接層的參數就是輸入的元素個數乘以輸出的元素個數&#xff0c;也就是輸入的通道數乘以輸入的高寬&#xff0c;再乘以輸出的通道數乘以輸出的高寬&#xff0c;賊大的量級 …

NLP簡介

自然語言處理( Natural Language Processing, NLP)是計算機科學領域與人工智能領域中的一個重要方向。它研究能實現人與計算機之間用自然語言進行有效通信的各種理論和方法。自然語言處理是一門融語言學、計算機科學、數學于一體的科學。因此&#xff0c;這一領域的研究將涉及自…

【算法】(C語言):冒泡排序、選擇排序、插入排序

冒泡排序 從第一個數據開始到第n-1個數據&#xff0c;依次和后面一個數據兩兩比較&#xff0c;數值小的在前。最終&#xff0c;最后一個數據&#xff08;第n個數據&#xff09;為最大值。從第一個數據開始到第n-2個數據&#xff0c;依次和后面一個數據兩兩比較&#xff0c;數值…

關于用戶咨詢華為擎云L410筆記本安裝Windows系統的說明

同樣也是單位購買的華為擎云L410 KLVU-WDU0筆記本電腦&#xff0c;國產UOS系統某些軟件用著不是很方便&#xff0c;用戶咨詢是否能夠安裝Windows10或者Windows7&#xff1f; 帶著種種疑問也做了一些查詢&#xff0c;之前也給一些國產設備更改過操作系統&#xff0c;之前的國產設…