成人免费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-01-28 11:08:32

MariaDB

2010-04-06 18:19:00

51CTO技術周刊

2011-09-08 13:50:51

51cto 51CTO

2023-06-19 16:44:05

數字化

2011-09-08 13:26:27

51cto 51CTO

2016-06-16 17:34:59

html5高招

2010-12-10 13:21:47

51CTO博客大賽

2010-05-04 16:22:45

Unix系統

2018-04-04 09:55:51

區塊鏈 51CTO

2010-05-10 13:00:37

華為認證

2013-04-08 10:38:00

2011-05-31 13:18:14

51CTO 熊平 新

2012-06-14 16:21:24

LinuxLinus Torva

2010-04-19 17:03:01

搜索谷歌
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产一区二区三区精品久久久 | 一级a性色生活片久久毛片波多野 | 中文字幕视频在线观看 | 久久久免费观看视频 | 国产精品日产欧美久久久久 | 欧美精品v国产精品v日韩精品 | 一级欧美 | 国产精品亚洲一区 | 在线播放一区二区三区 | 亚洲视频 欧美视频 | 国产日韩一区二区三区 | 日本欧美国产在线观看 | 欧美日本在线观看 | 国产一区二区 | 欧美一区二区三区大片 | 四虎永久免费影院 | 7777精品伊人久久精品影视 | 自拍第1页| 国产视频观看 | 香蕉视频一区二区 | 成年精品 | 精品1区2区3区 | 天天久 | 国产欧美日韩一区二区三区在线 | 日韩国产在线观看 | 久久精品视频一区二区 | 免费看黄色片 | 亚洲精品久久久蜜桃网站 | 欧美亚洲视频 | 一区二区精品 | 久久国产精品免费视频 | 一级片视频免费观看 | 91在线视频免费观看 | 久草免费在线视频 | 91一区二区 | 国产精品无码永久免费888 | 夜夜夜夜草| 色婷婷激情综合 | 婷婷狠狠 | 亚洲九九 | 伦理午夜电影免费观看 |