Scala 初学指南
2016-10-28 23:30
183 查看
特点
功能强大表达能力强
多范式(面向对象和函数式编程)
运行在JVM平台上
优雅
速度快(开发速度快,运行速度快)
能融合到Hadoop 平台。目前大数据库系统全部运行在JVM平台上
可以无缝调用java API
项目中的核心功能可以使用Scala开发,然后别人调用接口就可以
Scala 的编译器可以自动推断变量类型
提供了 Scala shell
HelloScala
/** * Created by 耀源 on 2016/10/28. */ object HelloScala {//object代表这是一个单例对象或者伴生对象 //放置静态方法,静态变量,不需要new def main(args: Array[String]): Unit = { println("Hello Scala")// } }
函数和方法的区别
方法 def 定义。返回值可以由编译器自动推断,所以可以省略。但是递归函数不可以省略。函数定义方式
匿名函数
(x : Int,y : Int) => x+y
普通函数
var add = (x: Int,y : Int) = > x + y等价于
val add: (Int,Int) => Int = { (a,b)=>a+b }
val func : Int => String = { x => x.toString }等价于
val func = (x: Int) => x.toString
val func = (x: Int,y Double) => (y,x)返回值超过两个时可以使用元组的方式返回。
val func: (Int,Double) => (Double,Int) = { (a,b) => (b,a)}
区别
可以作为一个值传到方法里
var r = 1 to 10 val f1 = (x : Int) = x*10 val f2 = (x : Int) = x+10 r.map(f1) r.map(f2) r.map(_ * 100) // 匿名函数
方法调用函数
val func = (x : Int,y : Int) => x+y def method1(f: (Int,Int) => Int) : Int = { f(2,6) } //放置静态方法,静态变量,不需要new def main(args: Array[String]): Unit = { println(method1(func)) }
神奇的下划线
将方法转换成函数def method(x: Int,y: Int): Int = x + y var func = methos _ //将一个方法变成了函数
相关文章推荐
- Scala基础 - 下划线使用指南
- Scala新手指南中文版 -第五篇 The Option Type(Option类型)
- Scala新手指南中文版 -第十篇 Staying DRY with higher-order functions(用高阶函数来消除重复代码)
- 面向 Java 开发人员的 Scala 指南: 深入了解 Scala 并发性
- Perl 初学指南
- Play 2.0 用户指南 - HTTP编程 --针对Scala开发者
- Play 2.0 用户指南 - 表单提交和验证 --针对Scala开发者
- [scala--代码风格指南]--声明
- Spring Framework标记库初学指南
- scala初学之函数定义、流程控制、异常处理入门
- Hadoop初学指南(7)--MapReduce自定义计数器
- 【scala初学】scala 语法 for
- 【scala初学】常用类- 基本类型
- 面向 Java 开发人员的 Scala 指南系列
- Spring Framework标记库初学指南
- scala初学12步
- 《R语言初学指南》读后感
- 【转】akka 入门指南 (Scala): 第一章
- 初学seo速记指南
- [scala--代码风格指南]--Scaladoc