SlideShare una empresa de Scribd logo
1 de 74
Sparkle
大纲

Scala是什么

语法(特色)

类库和工具

缺点
Scala是什么
"Which Programming Language would you use *now*
  on top of JVM, except Java?". The answer was
     surprisingly fast and very clear: - Scala.




               http://www.adam-bien.com/roller/abien/entry/java_net_javaone_which_programming
I can honestly say if someone had shown me
   theProgramming in Scala book by by Martin
Odersky, Lex Spoon & Bill Venners back in 2003 I'd
      probably have never created Groovy.




                  http://macstrac.blogspot.com/2009/04/scala-as-long-term-replacement-for.html
Scala是……
Scala是……

又一个JVM上的语言(编译)
Scala是……

又一个JVM上的语言(编译)

强类型
Scala是……

又一个JVM上的语言(编译)

强类型

“动态的”静态语言
Scala是……

又一个JVM上的语言(编译)

强类型

“动态的”静态语言

函数式
Scala是……

又一个JVM上的语言(编译)

强类型

“动态的”静态语言

函数式

面向对象
谁在用


Twitter

LinkedIn

FourSquare

Xerox、Sony、Siemens
语法(特色)
Hello world!

  object Test {
  ! def main(args: Array[String]) {
  ! ! println("Hello, world!")
  ! }
  }
Hello world!

没有分号
         object Test {
         ! def main(args: Array[String]) {
         ! ! println("Hello, world!")
         ! }
         }
Hello world!

没有分号
         object Test {
定义后置
         ! def main(args: Array[String]) {
         ! ! println("Hello, world!")
         ! }
         }
Hello world!

没有分号
           object Test {
定义后置
           ! def main(args: Array[String]) {
           ! ! println("Hello, world!")
object     ! }
           }
Hello world!

没有分号
           object Test {
定义后置
           ! def main(args: Array[String]) {
           ! ! println("Hello, world!")
object     ! }
           }
def
Hello world!

没有分号
            object Test {
定义后置
            ! def main(args: Array[String]) {
            ! ! println("Hello, world!")
object      ! }
            }
def

println
Hello world!
  object Test extends Application {
  ! println("Hello, world!")
  }
Hello world!
            object Test extends Application {
            ! println("Hello, world!")

extends
            }
Hello world!
            object Test extends Application {
            ! println("Hello, world!")

extends
            }

类内直接写代码
简化
简化
val i = 1.2.toInt
简化
val i = 1.2.toInt
val list = List(1, 2, 3)
简化
val i = 1.2.toInt
val list = List(1, 2, 3)

val map = Map("Guangzhou" -> "GZ",
"Shenzhen" -> "SZ")
简化
val i = 1.2.toInt
val list = List(1, 2, 3)

val map = Map("Guangzhou" -> "GZ",
"Shenzhen" -> "SZ")
class MyClass(x: Int, y: Int) {}
简化
val i = 1.2.toInt
val list = List(1, 2, 3)

val map = Map("Guangzhou" -> "GZ",
"Shenzhen" -> "SZ")
class MyClass(x: Int, y: Int) {}
list.exists(_ == 2) //true
简化
val i = 1.2.toInt
val list = List(1, 2, 3)

val map = Map("Guangzhou" -> "GZ",
"Shenzhen" -> "SZ")
class MyClass(x: Int, y: Int) {}
list.exists(_ == 2) //true
val (a, b, _) = (x, y, z)
函数式编程
函数式编程

list.filter(e => e % 2 == 0)
函数式编程

list.filter(e => e % 2 == 0)

list.filter(_ % 2 == 0)
函数式编程

list.filter(e => e % 2 == 0)

list.filter(_ % 2 == 0)

val f = (e: Int) => e % 2 == 0

list.filter(f)
open class(ruby)
class String
 def foo
 "foo"
 end
end
puts "".foo # prints "foo"
为什么我们需要open class
为什么我们需要open class

  StringUtils.isBlank("some str")
为什么我们需要open class

  StringUtils.isBlank("some str")

        "some str".isBlank
为什么我们需要open class

  StringUtils.isBlank("some str")

        "some str".isBlank

  myObj should not contains(13)
隐式转换
class MyString(str: String) {
  def isBlank = str.trim.length == 0
}
implicit def myStringWrapper(str: String) = new
MyString(str)

println("some str".isBlank)
隐式转换
class MyString(str: String) {
  def isBlank = str.trim.length == 0
}
implicit def myStringWrapper(str: String) = new
MyString(str)

println("some str".isBlank)

      println(new MyString("some str").isBlank)
open class的效果让大家觉得Scala是动态语言,但选择
  隐式转换来实现,正好证明了Scala是静态语言
Trait
  class Animal { xxx }
  trait CanFly {
    def fly {
      println("fly")
    }
  }
  class Bird extends Animal
    with CanFly {}
Trait
              class Animal { xxx }
              trait CanFly {
Mixin,类似多集成     def fly {
                  println("fly")
接口和实现一起出现       }
              }
是什么和拥有什么功能
              class Bird extends Animal
                with CanFly {}
Trait
class Fish { xxx }
trait CanFly {
  def fly {
    println("fly")
  }
}
val flyFish = new Fish with CanFly
Actors
val myActor = actor {
  loop {
    react {
      case "Send" => {
        println("Get")
      }
    }
  }
}
myActor ! "Send"
模式匹配
def matchTest(x: Any) = x match {
  case 1 => "number one"
  case y: Int if y > 0 => y + 1
  case head :: tail => tail
  case Send(a, _) => a
  case ("Send", _, b: String) => b
  case _ => x
}
XML支持


println(<date>{new java.util.Date()}</date>)
并发
是什么让我们觉得一个语言是并发的语言
是什么让我们觉得Go和Erlang是并发语
   言,而C++和Python不是
是什么让我们觉得Go和Erlang是并发语
    言,而C++和Python不是




 Go内置Channel和Goroutine

 Erlang的一次赋值、轻量级进程
是什么让我们觉得Scala

val

case class

模式匹配

大量的immutable类

Actors
与Java互相调用


Scala能调用绝大部分的Java

JavaConverters、JavaConversions

Java调用Scala独有的东西比较困难
类库和工具
Lift



full stack

view first
Play!



Play Scala
Play!



Play Scala

Play 2.0 !!
Akka


STM & Transactors

Fault-tolerance

Transparent Remoting

Scala & Java API
sbt



构建工具
更多

Xitrum

Scalatra、Scalate

ScalaTest、specs2

Squeryl
IDE支持
缺点
It took about 15 hours to recreate the publishing
daemon in Clojure and get it to pass all our tests.
   Today we ran a "soak test" publishing nearly
300,000 profiles in one run. The Scala code would
fail with OoM exceptions if we hit it with 50,000
        profiles in one run (sometimes less).


                http://groups.google.com/group/clojure/browse_thread/thread/b18f9006c068f0a0
The e-mail confirms that Yammer is moving its basic
infrastructure stack from Scala back to Java, owing
     to issues with complexity and performance.




                              http://www.infoq.com/news/2011/11/yammer-scala
flatMap [B, That] (f: (A)   Traversable[B])(implicit bf:
        CanBuildFrom[List[A], B, That]) : That




                                http://goodstuff.im/yes-virginia-scala-is-hard
jetbrains出了新JVM语言Kotlin后,Scala社区终于                                                始
         正视Scala太                杂的问题了




            http://groups.google.com/group/scalacn/browse_thread/thread/cbbe5997009db919
缺点

编译速度

二进制不兼容

语法越来越   杂

太少人使用,招聘    发人员的问题
始使用
始使用

使用最新版(2.9.1)
始使用

使用最新版(2.9.1)

先   用高级特性
始使用

使用最新版(2.9.1)

先   用高级特性

小工具、单元测试
始使用

使用最新版(2.9.1)

先   用高级特性

小工具、单元测试

Java/Scala混合项目,逐步   移
始使用

使用最新版(2.9.1)

先     用高级特性

小工具、单元测试

Java/Scala混合项目,逐步   移

sbt
谢谢


weibo&twitter: @sparklezeng

email: popeast@gmail.com

website: http://weavesky.com

Más contenido relacionado

La actualidad más candente

Javascript share
Javascript shareJavascript share
Javascript shareXu Mac
 
如何在 Java App 中導入 Scala
如何在 Java App 中導入 Scala如何在 Java App 中導入 Scala
如何在 Java App 中導入 Scalajavatwo2011
 
Java 開發者的函數式程式設計
Java 開發者的函數式程式設計Java 開發者的函數式程式設計
Java 開發者的函數式程式設計Justin Lin
 
TypeScript 綜合格鬥技
TypeScript 綜合格鬥技TypeScript 綜合格鬥技
TypeScript 綜合格鬥技Will Huang
 
Scala function-and-closures
Scala function-and-closuresScala function-and-closures
Scala function-and-closureswang hongjiang
 
炎炎夏日學 Android 課程 - Part1: Kotlin 語法介紹
炎炎夏日學 Android 課程 -  Part1: Kotlin 語法介紹炎炎夏日學 Android 課程 -  Part1: Kotlin 語法介紹
炎炎夏日學 Android 課程 - Part1: Kotlin 語法介紹Johnny Sung
 
ES5 introduction
ES5 introductionES5 introduction
ES5 introductionotakustay
 
Java SE 7 技術手冊第二章草稿 - 從 JDK 到 IDE
Java SE 7 技術手冊第二章草稿 - 從 JDK 到 IDEJava SE 7 技術手冊第二章草稿 - 從 JDK 到 IDE
Java SE 7 技術手冊第二章草稿 - 從 JDK 到 IDEJustin Lin
 
Use Lambdas in Android
Use Lambdas in AndroidUse Lambdas in Android
Use Lambdas in Androidkoji lin
 
Ecmascript
EcmascriptEcmascript
Ecmascriptjay li
 
潜力无限的编程语言Javascript
潜力无限的编程语言Javascript潜力无限的编程语言Javascript
潜力无限的编程语言Javascriptjay li
 
Java SE 8 的 Lambda 連鎖效應 - 語法、風格與程式庫
Java SE 8 的 Lambda 連鎖效應 - 語法、風格與程式庫Java SE 8 的 Lambda 連鎖效應 - 語法、風格與程式庫
Java SE 8 的 Lambda 連鎖效應 - 語法、風格與程式庫Justin Lin
 
Java7 fork join framework and closures
Java7 fork join framework and closuresJava7 fork join framework and closures
Java7 fork join framework and closureswang hongjiang
 
Java 8 與 retrolambda
Java 8 與 retrolambdaJava 8 與 retrolambda
Java 8 與 retrolambdaJustin Lin
 
页游开发中的 Python 组件与模式
页游开发中的 Python 组件与模式页游开发中的 Python 组件与模式
页游开发中的 Python 组件与模式勇浩 赖
 
OpenEJB - 另一個選擇
OpenEJB - 另一個選擇OpenEJB - 另一個選擇
OpenEJB - 另一個選擇Justin Lin
 
论 Python 与设计模式。
论 Python 与设计模式。论 Python 与设计模式。
论 Python 与设计模式。勇浩 赖
 

La actualidad más candente (20)

Javascript share
Javascript shareJavascript share
Javascript share
 
如何在 Java App 中導入 Scala
如何在 Java App 中導入 Scala如何在 Java App 中導入 Scala
如何在 Java App 中導入 Scala
 
functional-scala
functional-scalafunctional-scala
functional-scala
 
Java 開發者的函數式程式設計
Java 開發者的函數式程式設計Java 開發者的函數式程式設計
Java 開發者的函數式程式設計
 
TypeScript 綜合格鬥技
TypeScript 綜合格鬥技TypeScript 綜合格鬥技
TypeScript 綜合格鬥技
 
Sun java
Sun javaSun java
Sun java
 
Scala function-and-closures
Scala function-and-closuresScala function-and-closures
Scala function-and-closures
 
炎炎夏日學 Android 課程 - Part1: Kotlin 語法介紹
炎炎夏日學 Android 課程 -  Part1: Kotlin 語法介紹炎炎夏日學 Android 課程 -  Part1: Kotlin 語法介紹
炎炎夏日學 Android 課程 - Part1: Kotlin 語法介紹
 
ES5 introduction
ES5 introductionES5 introduction
ES5 introduction
 
Java SE 7 技術手冊第二章草稿 - 從 JDK 到 IDE
Java SE 7 技術手冊第二章草稿 - 從 JDK 到 IDEJava SE 7 技術手冊第二章草稿 - 從 JDK 到 IDE
Java SE 7 技術手冊第二章草稿 - 從 JDK 到 IDE
 
Use Lambdas in Android
Use Lambdas in AndroidUse Lambdas in Android
Use Lambdas in Android
 
Ecmascript
EcmascriptEcmascript
Ecmascript
 
潜力无限的编程语言Javascript
潜力无限的编程语言Javascript潜力无限的编程语言Javascript
潜力无限的编程语言Javascript
 
Scala
ScalaScala
Scala
 
Java SE 8 的 Lambda 連鎖效應 - 語法、風格與程式庫
Java SE 8 的 Lambda 連鎖效應 - 語法、風格與程式庫Java SE 8 的 Lambda 連鎖效應 - 語法、風格與程式庫
Java SE 8 的 Lambda 連鎖效應 - 語法、風格與程式庫
 
Java7 fork join framework and closures
Java7 fork join framework and closuresJava7 fork join framework and closures
Java7 fork join framework and closures
 
Java 8 與 retrolambda
Java 8 與 retrolambdaJava 8 與 retrolambda
Java 8 與 retrolambda
 
页游开发中的 Python 组件与模式
页游开发中的 Python 组件与模式页游开发中的 Python 组件与模式
页游开发中的 Python 组件与模式
 
OpenEJB - 另一個選擇
OpenEJB - 另一個選擇OpenEJB - 另一個選擇
OpenEJB - 另一個選擇
 
论 Python 与设计模式。
论 Python 与设计模式。论 Python 与设计模式。
论 Python 与设计模式。
 

Destacado

Знакомьтесь, Kotlin
Знакомьтесь, KotlinЗнакомьтесь, Kotlin
Знакомьтесь, KotlinTech Talks @NSU
 
Android opetuksessa 11.9.14
Android opetuksessa 11.9.14Android opetuksessa 11.9.14
Android opetuksessa 11.9.14Matleena Laakso
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugsComputer Science Club
 
Infinum Android Talks #20 - Benefits of using Kotlin
Infinum Android Talks #20 - Benefits of using KotlinInfinum Android Talks #20 - Benefits of using Kotlin
Infinum Android Talks #20 - Benefits of using KotlinInfinum
 
Do Languages Matter?
Do Languages Matter?Do Languages Matter?
Do Languages Matter?Bruce Eckel
 
Kotlin в production. Как и зачем?
Kotlin в production. Как и зачем?Kotlin в production. Как и зачем?
Kotlin в production. Как и зачем?DotNetConf
 
Programming in scala - 1
Programming in scala - 1Programming in scala - 1
Programming in scala - 1Mukesh Kumar
 
Kotlin advanced - language reference for android developers
Kotlin advanced - language reference for android developersKotlin advanced - language reference for android developers
Kotlin advanced - language reference for android developersBartosz Kosarzycki
 
JavaOne 2016 - Kotlin: The Language of The Future For JVM?
JavaOne 2016 - Kotlin: The Language of The Future For JVM?JavaOne 2016 - Kotlin: The Language of The Future For JVM?
JavaOne 2016 - Kotlin: The Language of The Future For JVM?Leonardo Zanivan
 
Kotlin: Why Do You Care?
Kotlin: Why Do You Care?Kotlin: Why Do You Care?
Kotlin: Why Do You Care?intelliyole
 
TMPA-2015: Kotlin: From Null Dereference to Smart Casts
TMPA-2015: Kotlin: From Null Dereference to Smart CastsTMPA-2015: Kotlin: From Null Dereference to Smart Casts
TMPA-2015: Kotlin: From Null Dereference to Smart CastsIosif Itkin
 
Scala in practice
Scala in practiceScala in practice
Scala in practiceTomer Gabel
 
[Expert Fridays] Java MeetUp - Борис Ташкулов (Teamlead Enterprise): "Почему ...
[Expert Fridays] Java MeetUp - Борис Ташкулов (Teamlead Enterprise): "Почему ...[Expert Fridays] Java MeetUp - Борис Ташкулов (Teamlead Enterprise): "Почему ...
[Expert Fridays] Java MeetUp - Борис Ташкулов (Teamlead Enterprise): "Почему ...Provectus
 
Who's More Functional: Kotlin, Groovy, Scala, or Java?
Who's More Functional: Kotlin, Groovy, Scala, or Java?Who's More Functional: Kotlin, Groovy, Scala, or Java?
Who's More Functional: Kotlin, Groovy, Scala, or Java?Andrey Breslav
 
Functional Programming Patterns (BuildStuff '14)
Functional Programming Patterns (BuildStuff '14)Functional Programming Patterns (BuildStuff '14)
Functional Programming Patterns (BuildStuff '14)Scott Wlaschin
 

Destacado (18)

Знакомьтесь, Kotlin
Знакомьтесь, KotlinЗнакомьтесь, Kotlin
Знакомьтесь, Kotlin
 
Scala Day by Day
Scala Day by DayScala Day by Day
Scala Day by Day
 
Android opetuksessa 11.9.14
Android opetuksessa 11.9.14Android opetuksessa 11.9.14
Android opetuksessa 11.9.14
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
 
Kotlin Overview
Kotlin OverviewKotlin Overview
Kotlin Overview
 
Intro to kotlin
Intro to kotlinIntro to kotlin
Intro to kotlin
 
Infinum Android Talks #20 - Benefits of using Kotlin
Infinum Android Talks #20 - Benefits of using KotlinInfinum Android Talks #20 - Benefits of using Kotlin
Infinum Android Talks #20 - Benefits of using Kotlin
 
Do Languages Matter?
Do Languages Matter?Do Languages Matter?
Do Languages Matter?
 
Kotlin в production. Как и зачем?
Kotlin в production. Как и зачем?Kotlin в production. Как и зачем?
Kotlin в production. Как и зачем?
 
Programming in scala - 1
Programming in scala - 1Programming in scala - 1
Programming in scala - 1
 
Kotlin advanced - language reference for android developers
Kotlin advanced - language reference for android developersKotlin advanced - language reference for android developers
Kotlin advanced - language reference for android developers
 
JavaOne 2016 - Kotlin: The Language of The Future For JVM?
JavaOne 2016 - Kotlin: The Language of The Future For JVM?JavaOne 2016 - Kotlin: The Language of The Future For JVM?
JavaOne 2016 - Kotlin: The Language of The Future For JVM?
 
Kotlin: Why Do You Care?
Kotlin: Why Do You Care?Kotlin: Why Do You Care?
Kotlin: Why Do You Care?
 
TMPA-2015: Kotlin: From Null Dereference to Smart Casts
TMPA-2015: Kotlin: From Null Dereference to Smart CastsTMPA-2015: Kotlin: From Null Dereference to Smart Casts
TMPA-2015: Kotlin: From Null Dereference to Smart Casts
 
Scala in practice
Scala in practiceScala in practice
Scala in practice
 
[Expert Fridays] Java MeetUp - Борис Ташкулов (Teamlead Enterprise): "Почему ...
[Expert Fridays] Java MeetUp - Борис Ташкулов (Teamlead Enterprise): "Почему ...[Expert Fridays] Java MeetUp - Борис Ташкулов (Teamlead Enterprise): "Почему ...
[Expert Fridays] Java MeetUp - Борис Ташкулов (Teamlead Enterprise): "Почему ...
 
Who's More Functional: Kotlin, Groovy, Scala, or Java?
Who's More Functional: Kotlin, Groovy, Scala, or Java?Who's More Functional: Kotlin, Groovy, Scala, or Java?
Who's More Functional: Kotlin, Groovy, Scala, or Java?
 
Functional Programming Patterns (BuildStuff '14)
Functional Programming Patterns (BuildStuff '14)Functional Programming Patterns (BuildStuff '14)
Functional Programming Patterns (BuildStuff '14)
 

Similar a Scala

Java Script 引擎技术
Java Script 引擎技术Java Script 引擎技术
Java Script 引擎技术bigqiang zou
 
千呼萬喚始出來的Java SE 7
千呼萬喚始出來的Java SE 7千呼萬喚始出來的Java SE 7
千呼萬喚始出來的Java SE 7javatwo2011
 
所谓闭包
所谓闭包所谓闭包
所谓闭包youzitang
 
JavaScript 教程
JavaScript 教程JavaScript 教程
JavaScript 教程Bobby Zhou
 
所谓闭包
所谓闭包所谓闭包
所谓闭包ilovey4
 
J2ee面试知识
J2ee面试知识J2ee面试知识
J2ee面试知识yiditushe
 
JavaScript 快速跳坑指南
JavaScript 快速跳坑指南JavaScript 快速跳坑指南
JavaScript 快速跳坑指南MuJingTsai
 
Standford 2015 iOS讀書會 week2: 1. Applying MVC 2. More Swift and Foundation Fra...
Standford 2015 iOS讀書會 week2: 1. Applying MVC 2. More Swift and Foundation Fra...Standford 2015 iOS讀書會 week2: 1. Applying MVC 2. More Swift and Foundation Fra...
Standford 2015 iOS讀書會 week2: 1. Applying MVC 2. More Swift and Foundation Fra...彼得潘 Pan
 
JavaScript 脚本控件(二)
JavaScript 脚本控件(二)JavaScript 脚本控件(二)
JavaScript 脚本控件(二)RANK LIU
 
學好 node.js 不可不知的事
學好 node.js 不可不知的事學好 node.js 不可不知的事
學好 node.js 不可不知的事Ben Lue
 
异步编程与浏览器执行模型
异步编程与浏览器执行模型异步编程与浏览器执行模型
异步编程与浏览器执行模型keelii
 
Java Jdk6学习笔记[Ppt]
Java Jdk6学习笔记[Ppt]Java Jdk6学习笔记[Ppt]
Java Jdk6学习笔记[Ppt]yiditushe
 
The Evolution of Async Programming (GZ TechParty C#)
The Evolution of Async Programming (GZ TechParty C#)The Evolution of Async Programming (GZ TechParty C#)
The Evolution of Async Programming (GZ TechParty C#)jeffz
 
Android resource-management
Android resource-managementAndroid resource-management
Android resource-managementLucas Xu
 
Ecma script3
Ecma script3 Ecma script3
Ecma script3 gniavaj
 
IKVM.NET 深入敵營的 Java
IKVM.NET 深入敵營的 JavaIKVM.NET 深入敵營的 Java
IKVM.NET 深入敵營的 Java建興 王
 
《Java程序设计》期末考试试题 (六)
《Java程序设计》期末考试试题 (六)《Java程序设计》期末考试试题 (六)
《Java程序设计》期末考试试题 (六)jane2006
 

Similar a Scala (20)

Java Script 引擎技术
Java Script 引擎技术Java Script 引擎技术
Java Script 引擎技术
 
千呼萬喚始出來的Java SE 7
千呼萬喚始出來的Java SE 7千呼萬喚始出來的Java SE 7
千呼萬喚始出來的Java SE 7
 
Scala+spark 2nd
Scala+spark 2ndScala+spark 2nd
Scala+spark 2nd
 
所谓闭包
所谓闭包所谓闭包
所谓闭包
 
JavaScript 教程
JavaScript 教程JavaScript 教程
JavaScript 教程
 
Hi Haskell
Hi HaskellHi Haskell
Hi Haskell
 
所谓闭包
所谓闭包所谓闭包
所谓闭包
 
J2ee面试知识
J2ee面试知识J2ee面试知识
J2ee面试知识
 
JavaScript 快速跳坑指南
JavaScript 快速跳坑指南JavaScript 快速跳坑指南
JavaScript 快速跳坑指南
 
Standford 2015 iOS讀書會 week2: 1. Applying MVC 2. More Swift and Foundation Fra...
Standford 2015 iOS讀書會 week2: 1. Applying MVC 2. More Swift and Foundation Fra...Standford 2015 iOS讀書會 week2: 1. Applying MVC 2. More Swift and Foundation Fra...
Standford 2015 iOS讀書會 week2: 1. Applying MVC 2. More Swift and Foundation Fra...
 
JavaScript 脚本控件(二)
JavaScript 脚本控件(二)JavaScript 脚本控件(二)
JavaScript 脚本控件(二)
 
學好 node.js 不可不知的事
學好 node.js 不可不知的事學好 node.js 不可不知的事
學好 node.js 不可不知的事
 
异步编程与浏览器执行模型
异步编程与浏览器执行模型异步编程与浏览器执行模型
异步编程与浏览器执行模型
 
Java Jdk6学习笔记[Ppt]
Java Jdk6学习笔记[Ppt]Java Jdk6学习笔记[Ppt]
Java Jdk6学习笔记[Ppt]
 
The Evolution of Async Programming (GZ TechParty C#)
The Evolution of Async Programming (GZ TechParty C#)The Evolution of Async Programming (GZ TechParty C#)
The Evolution of Async Programming (GZ TechParty C#)
 
Android resource-management
Android resource-managementAndroid resource-management
Android resource-management
 
Ecma script3
Ecma script3 Ecma script3
Ecma script3
 
Scala+RDD
Scala+RDDScala+RDD
Scala+RDD
 
IKVM.NET 深入敵營的 Java
IKVM.NET 深入敵營的 JavaIKVM.NET 深入敵營的 Java
IKVM.NET 深入敵營的 Java
 
《Java程序设计》期末考试试题 (六)
《Java程序设计》期末考试试题 (六)《Java程序设计》期末考试试题 (六)
《Java程序设计》期末考试试题 (六)
 

Scala

Notas del editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n