快學Scala

出版時間:2012-10  出版社:電子工業(yè)出版社  作者:[美] C. S. 霍斯曼  頁數(shù):388  字數(shù):453000  譯者:高宇翔  
Tag標簽:無  

內(nèi)容概要

scala是一門以java虛擬機(jvm)為目標運行環(huán)境并將面向?qū)ο蠛秃瘮?shù)式編程語言的最佳特性結(jié)合在一起的編程語言。你可以使用scala編寫出更加精簡的程序,同時充分利用并發(fā)的威力。由于scala運行于jvm之上,因此它可以訪問任何java類庫并且與java框架進行互操作。本書從實用角度出發(fā),給出了一份快速的、基于代碼的入門指南。horstmann以“博客文章大小”的篇幅介紹了scala的概念,讓你可以快速地掌握和應用。實際上手的操作,清晰定義的能力層次,從初級到專家級,全程指導。
 《快學scala》適合有一定的java編程經(jīng)驗、對scala感興趣,并希望盡快掌握scala核心概念和用法的開發(fā)者閱讀。

作者簡介

Cay S.
Horstmann是《Java核心技術(shù)》卷1和卷2第8版(Sun Microsystems出版社2008年出版)的主要作者,除此之外,他還著有其他十多本面向?qū)I(yè)程序員和計算機科學專業(yè)學生的書籍。他是San
Jose

書籍目錄

譯者序 iii 序xv 前言xvii 作者簡介xix 第1章 基礎(chǔ)a1 1 1.1 scala解釋器1 1.2 聲明值和變量 3 1.3 常用類型 4 1.4 算術(shù)和操作符重載 5 1.5 調(diào)用函數(shù)和方法 7 1.6 apply方法8 1.7 scaladoc9 練習11 第2章 控制結(jié)構(gòu)和函數(shù)a1 13 2.1  條件表達式14 2.2 語句終止 16 2.3 塊表達式和賦值 16 2.4  輸入和輸出17 2.5 循環(huán) 18 .2.6 高級for循環(huán)和for推導式19 2.7 函數(shù) 21 2.8 默認參數(shù)和帶名參數(shù) l1 22 2.9 變長參數(shù) l122 2.10 過程 23 2.11 懶值l1 24 2.12 異常 25 練習27 第3章 數(shù)組相關(guān)操作a1 29 3.1 定長數(shù)組 29 3.2 變長數(shù)組:數(shù)組緩沖 30 3.3 遍歷數(shù)組和數(shù)組緩沖 31 3.4 數(shù)組轉(zhuǎn)換 32 3.5 常用算法 34 3.6 解讀scaladoc 35 3.7 多維數(shù)組 37 3.8 與java的互操作 37 練習38 第4章 映射和元組a1 41 4.1 構(gòu)造映射 41 4.2 獲取映射中的值 42 4.3 更新映射中的值 43 4.4 迭代映射 44 4.5 已排序映射 44 4.6 與java的互操作 45 4.7 元組 45 4.8 拉鏈操作 46 練習47 第5章 類a1 51 5.1 簡單類和無參方法51 5.2 帶getter和setter的屬性 52 5.3 只帶getter的屬性55 5.4 對象私有字段 56 5.5 bean屬性l1 57 5.6 輔助構(gòu)造器 59 5.7 主構(gòu)造器 60 5.8 嵌套類l1 63 練習65 第6章 對象a1 69 6.1 單例對象 69 6.2 伴生對象 70 6.3 擴展類或特質(zhì)的對象 71 6.4 apply方法 72 6.5 應用程序?qū)ο?73 6.6 枚舉 74 練習75 第7章 包和引入a1 79 7.1 包 80 7.2 作用域規(guī)則 81 7.3 串聯(lián)式包語句 83 7.4 文件頂部標記法 83 7.5 包對象84 7.6 包可見性 85 7.7 引入 85 7.8  任何地方都可以聲明引入 86 7.9 重命名和隱藏方法87 7.10 隱式引入 87 練習88 第8章 繼承a1 91 8.1 擴展類91 8.2 重寫方法 92 8.3 類型檢查和轉(zhuǎn)換 93 8.4 受保護字段和方法94 8.5 超類的構(gòu)造 94 8.6 重寫字段 95 8.7 匿名子類 96 8.8 抽象類97 8.9 抽象字段 97 8.10 構(gòu)造順序和提前定義l398 8.11 scala繼承層級 100 8.12 對象相等性l1 101 練習 102 第9章 文件和正則表達式a1 105 9.1 讀取行 106 9.2 讀取字符106 9.3 讀取詞法單元和數(shù)字107 9.4 從url或其他源讀取108 9.5 讀取二進制文件 108 9.6 寫入文本文件 108 9.7 訪問目錄109 9.8 序列化 110 9.9 進程控制a2 111 9.10 正則表達式 113 9.11 正則表達式組 114 練習 114 第10章 特質(zhì)l1 117 10.1 為什么沒有多重繼承 117 10.2 當做接口使用的特質(zhì) 119 10.3 帶有具體實現(xiàn)的特質(zhì) 120 10.4 帶有特質(zhì)的對象121 10.5 疊加在一起的特質(zhì) 122 10.6 在特質(zhì)中重寫抽象方法124 10.7 當做富接口使用的特質(zhì)124 10.8 特質(zhì)中的具體字段 125 10.9 特質(zhì)中的抽象字段 126 10.10 特質(zhì)構(gòu)造順序 127 10.11 初始化特質(zhì)中的字段 129 10.12 擴展類的特質(zhì) 131 10.13 自身類型l2 132 10.14 背后發(fā)生了什么133 練習 135 第11章 操作符l1 139 11.1 標識符 139 11.2 中置操作符 140 11.3 一元操作符 141 11.4 賦值操作符 142 11.5 優(yōu)先級 142 11.6 結(jié)合性 143 11.7 apply和update方法144 11.8 提取器l2 145 11.9 帶單個參數(shù)或無參數(shù)的提取器l2 146 11.10 unapplyseq方法l2 147 練習 148 第12章 高階函數(shù)l1 151 12.1 作為值的函數(shù) 151 12.2 匿名函數(shù) 152 12.3 帶函數(shù)參數(shù)的函數(shù) 153 12.4 參數(shù)(類型)推斷 154 12.5 一些有用的高階函數(shù) 155 12.6 閉包156 12.7 sam轉(zhuǎn)換 157 12.8 柯里化 158 12.9 控制抽象 159 12.10 return表達式161 練習 162 第13章 集合a2 165 13.1 主要的集合特質(zhì)166 13.2 可變和不可變集合 167 13.3 序列168 13.4 列表169 13.5 可變列表 170 13.6 集 171 13.7 用于添加或去除元素的操作符 173 13.8 常用方法 175 13.9 將函數(shù)映射到集合 177 13.10 化簡、折疊和掃描a3178 13.11 拉鏈操作 181 13.12 迭代器 183 13.13 流a3 184 13.14 懶視圖 185 13.15 與java集合的互操作 186 13.16 線程安全的集合188 13.17 并行集合 188 練習 190 第14章 模式匹配和樣例類a2 193 14.1 更好的switch 194 14.2 守衛(wèi)195 14.3 模式中的變量 195 14.4 類型模式 196 14.5 匹配數(shù)組、列表和元組197 14.6 提取器 198 14.7 變量聲明中的模式 199 14.8 for表達式中的模式 199 14.9 樣例類 200 14.10 copy方法和帶名參數(shù) 201 14.11 case語句中的中置表示法 201 14.12 匹配嵌套結(jié)構(gòu) 202 14.13 樣例類是邪惡的嗎 203 14.14 密封類 204 14.15 模擬枚舉 205 14.16 option類型 205 14.17 偏函數(shù)l2 207 練習 207 第15章 注解a2 211 15.1 什么是注解 212 15.2 什么可以被注解212 15.3 注解參數(shù) 213 15.4 注解實現(xiàn) 214 15.5 針對java特性的注解 216 15.5.1 java修飾符 216 15.5.2 標記接口 216 15.5.3 受檢異常 217 15.5.4 變長參數(shù) 217 15.5.5 javabeans218 15.6 用于優(yōu)化的注解219 15.6.1 尾遞歸 219 15.6.2 跳轉(zhuǎn)表生成與內(nèi)聯(lián)220 15.6.3 可省略方法221 15.6.4 基本類型的特殊化222 15.7 用于錯誤和警告的注解223 練習 224 第16章 xml處理a2 227 16.1 xml字面量228 16.2 xml節(jié)點228 16.3 元素屬性 230 16.4 內(nèi)嵌表達式 231 16.5 在屬性中使用表達式 232 16.6 特殊節(jié)點類型 233 16.7 類xpath表達式 234 16.8 模式匹配 235 16.9 修改元素和屬性236 16.10 xml變換237 16.11 加載和保存 238 16.12 命名空間 241 練習 242 第17章 類型參數(shù)l2 245 17.1 泛型類 246 17.2 泛型函數(shù) 246 17.3 類型變量界定 246 17.4 視圖界定 248 17.5 上下文界定 249 17.6 manifest上下文界定249 17.7 多重界定 250 17.8 類型約束l3 250 17.9 型變252 17.10 協(xié)變和逆變點 253 17.11 對象不能泛型 255 17.12 類型通配符 256 練習 257 第18章 高級類型l2 259 18.1 單例類型 259 18.2 類型投影 261 18.3 路徑262 18.4 類型別名 263 18.5 結(jié)構(gòu)類型 264 18.6 復合類型 265 18.7 中置類型 266 18.8 存在類型 267 18.9 scala類型系統(tǒng) 268 18.10 自身類型 269 18.11 依賴注入 271 18.12 抽象類型l3 272 18.13 家族多態(tài) l3274 18.14 高等類型l3 278 練習 281 第19章 解析a3 285 19.1 文法286 19.2 組合解析器操作287 19.3 解析器結(jié)果變換289 19.4 丟棄詞法單元 291 19.5 生成解析樹 291 19.6 避免左遞歸 292 19.7 更多的組合子 294 19.8 避免回溯 296 19.9 記憶式解析器 297 19.10 解析器說到底是什么 297 19.11 正則解析器 299 19.12 基于詞法單元的解析器299 19.13 錯誤處理 302 練習 302 第20章 actor a3 305 20.1 創(chuàng)建和啟動actor 306 20.2 發(fā)送消息 307 20.3 接收消息 308 20.4 向其他actor發(fā)送消息309 20.5 消息通道 310 20.6 同步消息和future 311 20.7 共享線程 313 20.8 actor的生命周期 316 20.9 將多個actor鏈接在一起 317 20.10 actor的設(shè)計318 練習 320 第21章 隱式轉(zhuǎn)換和隱式參數(shù)l3 323 21.1 隱式轉(zhuǎn)換 324 21.2 利用隱式轉(zhuǎn)換豐富現(xiàn)有類庫的功能 324 21.3 引入隱式轉(zhuǎn)換 325 21.4 隱式轉(zhuǎn)換規(guī)則 326 21.5 隱式參數(shù) 328 21.6 利用隱式參數(shù)進行隱式轉(zhuǎn)換 329 21.7 上下文界定 330 21.8 類型證明 331 21.9 @implicitnotfound注解333 21.10 canbuildfrom解讀 333 練習 336 第22章 定界延續(xù)l3 339 22.1 捕獲并執(zhí)行延續(xù)340 22.2 “運算當中挖個洞” 341 22.3 reset和shift的控制流轉(zhuǎn) 342 22.4 reset表達式的值 343 22.5 reset和shift表達式的類型 344 22.6 cps注解 345 22.7 將遞歸訪問轉(zhuǎn)化為迭代347 22.8 撤銷控制反轉(zhuǎn) 349 22.9 cps變換 353 22.10 轉(zhuǎn)換嵌套的控制上下文356 練習 358 詞匯表 360 索引 367

章節(jié)摘錄

版權(quán)頁:   插圖:   你也可以在命令行中使用這些名稱: scalac —Xelide—below INFO myprog.scala 如果不指定—Xelide—below標志,那些被注解的值低于1000的方法會被省略,剩下SEVERE的方法和斷言,但會去掉所有警告。 說明:ALL和OFF級別可能會讓人感到困惑。注解@elide(ALL)表示方法總是被省略,而@elide(OFF)表示方法永不被省略。但—Xelide—below OFF的意思是要省略 所有方法,而—Xelide—below ALL的意思是什么都不要省略。這就是后來又增加了MAXIMUM和MINIMUM的原因。 Predef模塊塊定義了一個可被忽略的assert方法。例如,我們可以寫: def makeMap (keys: Seq(String), values: Seq(String)) ={assert (keys.length==values.length, """"lengths don't match”)} 如果我們用不匹配的兩個參數(shù)來調(diào)用該方法,則assert方法將拋出AssertionError,報錯消息為“assertion failed: lengths don't match”。 如果要禁用斷言,可以用—Xelide—below 2001或—Xelide—below MAXIMUM。注意在缺省情況下斷言不會被禁用。相比Java斷言,這是個受歡迎的改進。 注意:對被省略的方法調(diào)用,編譯器會幫我們替換成Unit對象。如果你用到了 被省略方法的返回值,則一個ClassCastException會被拋出。最好只對那些沒有返回值的方法使用@elidable注解。

編輯推薦

《快學Scala》適合有一定的Java編程經(jīng)驗、對Scala感興趣,并希望盡快掌握Scala核心概念和用法的開發(fā)者閱讀。

圖書封面

圖書標簽Tags

評論、評分、閱讀與下載


    快學Scala PDF格式下載


用戶評論 (總計40條)

 
 

  •   比起《Scala編程》,這本書更加簡潔,非常適合入門者。
  •   看這書時感覺比另一本scala編程更易上手,每章后也附帶了不少練習題目來鞏固所學,前面部分還好理解,不過看到后面的,要理解起來還是挺費勁的。
  •   scala是門值得學習的語言,很有魔力
  •   這是系統(tǒng)入門Scala的一本好書,Scala很酷,程序猿們都來玩Scala??!
  •   非常好的scala入門教程,書紙張也很好!
  •   不錯的scala入門圖書。
  •   剛拿到書 比較興奮, 這本書算國內(nèi)的第二本 scala的書吧 老高翻譯的。
  •   很適合java程序員閱讀,循序漸進??梢耘浜显诰€視頻教程一起看。
  •   已經(jīng)看了7,8章了,內(nèi)容不錯,有java基礎(chǔ)看看很好的
  •   不錯很好,適合有編程基礎(chǔ)的人閱讀
  •   易學,但是如果想要深入學習,這本書可能還不夠,畢竟,這只是一本快速入門的書籍。
  •   還可以了,抓緊時間學習
  •   看書和網(wǎng)上搜集零散文檔學習效果是不一樣。
  •   好書啊 剛剛看完一章 覺得不錯
  •   內(nèi)容不錯,信息比較全
  •   還可以,剛看
  •   比較適合初學者,對scala做了全面的介紹。建議配合代碼一起學習
  •   還可以適合入門
  •   內(nèi)容簡單,尤其對java或者函數(shù)編程有認識的童鞋來說
  •   5折買的,正在看,希望能帶來思想的碰撞
  •   紙質(zhì)還可以,發(fā)貨出奇慢。50多小時才收到。
  •   書很好,第一次這么認真的看書,但示例代碼有不少問題。比如:2.5節(jié) for (i <- 0 util s.length) 中的 util 就不對應該是 until3.5節(jié) ArraryBuffer("Mary", "had", "a", "little", "lamb") 應該是 ArrayBuffer建議對照英文版一起看。
  •   書挺好的,雖然不算面面俱到,但是就書名“快學”而言,倒是完成了任務。有java基礎(chǔ)的看這本書會比較簡單
  •   不如programming in scala (scala編程)寫得好。跳躍性比較大,例子不夠生動。原作可能就有點問題,加上中文翻譯,無語了。比如trait 翻譯為:特質(zhì)。scala本身不適合初級程序員看,最好看英文原版,要不很多術(shù)語別扭死。
  •   學習Scala必備的書籍之一,每一章內(nèi)容并不多,語言精練,有一定Java基礎(chǔ)的比較適合每一章后面附有練習題,練習下非常有助于掌握Scala
  •   內(nèi)容很好,比較基礎(chǔ),基本沒有深度內(nèi)容,適合初學不適合提高。 中文譯者明顯是為了湊篇幅,文字行距大到不能再大,后面幾十頁都是無用的中英文詞匯參考。
  •   此書不錯,簡潔但不乏深度,留給讀者比較大的思考空間。老外的書一般都比較啰嗦,但這本書不是這個風格的。作者水平也比較高。scala風頭正勁,值得收藏。
  •   重基礎(chǔ),關(guān)變化,學要領(lǐng),買來從基礎(chǔ)打起
  •   看此書,最好在scala編程指南的基礎(chǔ)上。
  •   不錯,喜歡這本書,很適合初學者
  •   書內(nèi)容很全,唯一是并發(fā)部分最新版scala已經(jīng)升級了。Scala的語法是比較蛋疼,復雜的很,不過一旦學會了你就會喜歡上了,幾行語句可以覆蓋java 幾百行代碼。。。Python和Scala我都很喜歡。這本書強烈推薦,以及另一本七周七語言
  •   喜歡的理由:這本書描述的很詳細,應該屬于我這樣的初學者。欠缺的地方:書的包裝上有點問題,封面那邊的膠有點不給力??偟膩碚f,是很滿意。
  •   適合入門,而且進階得很快,在簡單細節(jié)上不作過多糾纏,如果學過java的話很容易看懂。
  •   學習scala入門首選,不足之處在于,基礎(chǔ)講太多,對于有編程基礎(chǔ)的人來說,一半都浪費了 。
  •   易懂 看起來不費勁
  •   看了幾頁了,不錯的書
  •   雖然是雙11其間也沒有必要這么慢呀
  •   質(zhì)量很好,打折很便宜
  •   大家都來學習 scala 吧
  •   還可以輸入1998字
 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網(wǎng) 手機版

京ICP備13047387號-7