Board logo

標題: 泛型 [打印本頁]

作者: 李泳霖    時間: 2021-11-5 15:24     標題: 泛型

泛型(Generics)是現代程式語言提供的一種功能,它使得程式設計師不必撰寫功能相同但資料型態不同的程式。

譬如,下面的幾個方法目的都只是在回傳中間的參數,邏輯其實都相同就只是當中所涉及的型態不一樣,若沒有運用泛型語法,我們可能會使用方法多載(Overload)的特性寫了如下的三個方法。雖然只需拷貝方法的內容,或修改變數宣告的資料型態,但這類的工作相當乏味且浪費時間。
  1. String mid(String a, String b, String c)
  2. {
  3.     return b;
  4. }
  5. int mid(int a, int b, int c)
  6. {
  7.     return b;
  8. }
  9. float mid(float a, float b, float c)
  10. {
  11.     return b;
  12. }
複製代碼
如果程式允許一種資料型態在撰寫程式時不需要考量真實的資料型態,而能夠在呼叫時才決定真實的資料型態,那就可以省略上述的工作,而程式碼可改寫如下:
  1. <T> T mid(T a, T b, T c)
  2. {
  3.     return b;
  4. }
複製代碼
在上列程式碼中,我們使用角括號 <T> 來宣告一個型態持有者,名稱為 T(Type的縮寫),之後就可以用 T 這個名稱作為型態,來宣告成員、參數或返回值的型態。

範例一:泛型方法
本帖隱藏的內容需要回復才可以瀏覽



範例二:泛型類別
本帖隱藏的內容需要回復才可以瀏覽


作者: 郭哲維    時間: 2021-11-6 10:28

此帖僅作者可見
作者: 王翎璇    時間: 2021-11-6 10:31

此帖僅作者可見
作者: 黃柏叡    時間: 2021-11-6 10:33

此帖僅作者可見
作者: 龔品誠    時間: 2021-11-6 10:33

此帖僅作者可見
作者: 李穎俊    時間: 2021-11-6 10:33

此帖僅作者可見
作者: 陳羿安    時間: 2021-11-6 10:34

此帖僅作者可見
作者: 林羿丞    時間: 2021-11-6 10:38

此帖僅作者可見
作者: 王銘鴻    時間: 2021-11-6 10:38

此帖僅作者可見
作者: 曾宥程    時間: 2021-11-6 10:39

此帖僅作者可見
作者: 張淯祺    時間: 2021-11-6 10:42

此帖僅作者可見
作者: 李柏穎    時間: 2021-11-27 09:23

此帖僅作者可見
作者: 謝以愛    時間: 2022-7-20 17:34

此帖僅作者可見
作者: 謝以恩    時間: 2022-7-20 17:34

此帖僅作者可見




歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/) Powered by Discuz! 7.2