成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Scala創始人致信51CTO:全面解答Scala的泛型優勢

原創
開發 后端
Scala編程語言可以說是基于JVM的語言中最具有潛力的一個。在Scala創始人Martin Odersky的訪談中可以看出,泛型是他創建Scala的主要原因之一。近日,在51CTO編輯阿菜與Martin的電子郵件來往中,Martin詳細揭示了Scala泛型相對于Java泛型的優越之處。

51CTO開發頻道最新推薦:Scala編程語言專題

【51CTO獨家特稿】Scala創始人Martin Odersky的訪談錄在51CTO已經連續發表了一月有余,讀者的反映十分熱烈。訪談中,Martin介紹了很多Scala的設計理念以及語言特性,對于程序員了解Scala編程語言有著極大的幫助。然而,在很多具體的方面,限于訪談時間與篇幅的關系,Martin并沒能夠給予足夠的解釋。為此,51CTO的編輯于近日致電郵向其詢問,并很快得到了來自Martin的回信。信件包括幾個方面的內容,本文主要介紹有關Scala泛型方面的。

第一篇訪談中,Martin講到了他在設計Java泛型時遇到的約束,而正是Java的約束性令Martin產生了創建一個超越Java的新語言的念頭,并最終因此產生了Scala編程語言。而在之后有關Scala的類型系統部分中,Martin解釋道,“Scala像Java一樣,使用泛型擦除模式(erasure),所以當程序運行時,我們不再能看到類型參數。這是為了能與Java互用而進行的設計”。另外,51CTO的編輯也在其他Scala的用戶那里看到這樣的疑問,說“聽說Scala在泛型上超越了Java,但具體是哪些方面,我也搞不清楚。”為此,郵件中的問題之一就是:

具體來說,Scala在泛型上有哪些方面比Java更加好用呢?

以下是Martin Odersky的回答:

首先是Arrays。Scala中的array可以取泛型參數(parameterized types)以及類型變量(type variables)來做其元素的類型。這兩項在Scala中是可能的,但在Java中是不可能完成的:

  1. val xs = new Array[List[Int]](leng)  
  2. val ys = new Array[T](len)  // 這里的T是類型變量 

我在Java泛型中感到最煩人的缺點之一就是array泛型的缺乏。要實現array的泛型,必要的步驟就是讓array變成非變量(non-variant)。Java無法做到這一點,這是因為其向后兼容的關系。但是,Scala可以做到。

第二,對基本類型(primitive types)的支持。上面給出的兩行代碼已經顯示出基本類型可以被當做類型參數(type parameters)來使用。

第三,聲明地點可變性(declaration site variance)。對于類型協變量(types covariant)以及逆變量(contravariant)聲明的支持,將極大的改進絕大多數庫的一致性。

第四,對于上下邊界的支持(lower bound & upper bound),以及將多個上邊界(multiple upper bonds)做為復合類型(compound type)模式的支持。

我相信,具體化(reification)的缺乏可以通過manifests類來充分解決。Manifests類型現在在Scala中還正在設計中。具體化經常被描述成一切泛型問題的萬靈藥,但它不是。還有就是,擁有泛型的成功的語言中,比如Haskell,ML或OCaml中,都在使用泛型擦除模式(erasure),所以(Scala中)使用這個模式并非只是為了向Java妥協而設計。

有關Scala的泛型就先介紹到這里。51CTO在未來將繼續帶來新的有關Scala編程語言的各種新消息,介紹,教程,以及各種你想知道的關于Scala的內容。對于Java開發人員而言,Scala的學習曲線可以說是微乎其微,而且潛力也相當可觀。如果對Scala語言感興趣,歡迎繼續關注51CTO的Scala編程語言專題

【51CTO.COM 獨家特稿,轉載請注明出處及作者!】

【相關閱讀】

  1. Scala的類型系統:取代復雜的通配符
  2. Scala的類型系統 比Java更靈活
  3. Java程序員,你為什么要關注Scala
  4. Scala創始人:創造比Java更好的語言
  5. Java以外的選擇 Scala編程語言簡介
責任編輯:yangsai 來源: 51CTO.com
相關推薦

2010-08-11 08:35:00

Scala 2.8Scala創始人Martin Oder

2009-05-20 09:41:10

2009-07-08 11:44:40

ScalaGroovyJVM

2009-09-09 14:11:58

Scala泛型

2020-02-21 08:18:58

JavaScala編程語言

2010-09-14 13:22:17

Scala編程指南Scala

2010-04-06 18:19:00

51CTO技術周刊

2010-01-28 11:08:32

MariaDB

2011-09-08 13:50:51

51cto 51CTO

2023-06-19 16:44:05

數字化

2011-09-08 13:26:27

51cto 51CTO

2010-12-10 13:21:47

51CTO博客大賽

2010-05-04 16:22:45

Unix系統

2016-06-16 17:34:59

html5高招

2010-05-10 13:00:37

華為認證

2018-04-04 09:55:51

區塊鏈 51CTO

2013-04-08 10:38:00

2011-10-17 15:22:59

TechEd2011

2010-04-19 17:03:01

搜索谷歌

2011-05-31 13:18:14

51CTO 熊平 新
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 羞羞视频在线观看网站 | 日韩精品激情 | 色中文在线 | 亚洲精品区 | 91 视频网站 | 国产精品一卡 | 天堂网中文| 欧美一区二区三区在线观看 | 一区二区av | 玖玖视频 | 国产亚洲精品精品国产亚洲综合 | 色婷婷综合久久久久中文一区二区 | 日日噜噜噜夜夜爽爽狠狠视频, | 狠狠操狠狠操 | 国产精品美女久久久 | 99精品免费 | 日韩五月天 | 北条麻妃99精品青青久久主播 | 亚洲精品乱码久久久久久久久 | 精品久久久久久久久久久久久久久久久 | 精品免费国产一区二区三区 | 欧美日一区二区 | 日本aa毛片a级毛片免费观看 | a毛片| 久久99这里只有精品 | 国产成人网 | 亚洲欧美日韩精品久久亚洲区 | 精品欧美一区二区三区 | 五十女人一级毛片 | 国产精品毛片一区二区三区 | 性一区 | 一区二区日韩精品 | 91精品国产91久久久久游泳池 | 自拍 亚洲 欧美 老师 丝袜 | 91在线视频观看免费 | 中文字幕一区二区三 | 欧美a级成人淫片免费看 | 亚洲精品视频在线播放 | 国产精品亚洲成在人线 | 亚洲视频www | 一区精品视频在线观看 |