var and val

简单来说,val声明的变量可以重新修改其引用,val则不行,见下面的例子:

 def max(x: Int, y: Int): Int = {
if(x > y) x else y
} def max(x: Int, y: Int): Int = if(x > y) x else y var list = Array(1, 2, 3)
list.foreach(x => println(x)) for(x <- list) {
println(x)
} def test(fun: (Int, Int) => Unit): Unit = {
fun(5, 6)
} def printlnXY(x: Int, y: Int): Unit = {
println(x)
println(y)
} test(printlnXY) test((x, y) => {
println(x)
println(y)
})

采用后缀类型声明法的原因是Scala支持类型推断,这样后面的类型声明在大多数情况下是可以忽略的。

Define some function

基本语法

 def max(x: Int, y: Int): Int = {
if(x > y) x else y
}

如果方法只包含一行代码,则可以这样写:

 def max(x: Int, y: Int): Int =  if(x > y) x else y 

Iterate with foreach and for

 var list = Array(1, 2, 3)
list.foreach(x => println(x))

语法感觉非常亲切(类似C#)。有点委托、匿名方法和Lamda表达式的味道。

 def test(fun: (Int, Int) => Unit): Unit = {
fun(5, 6)
} def printlnXY(x: Int, y: Int): Unit = {
println(x)
println(y)
} test(printlnXY) test((x, y) => {
println(x)
println(y)
})

Scala:First Steps in Scala的更多相关文章

  1. Scala:Next Steps in Scala

    Array val greetStrings = new Array[String](3) greetStrings(0) = "Hello" greetStrings(1) = ...

  2. Scala:使用Sublime开发Scala

    Scala:使用Sublime开发Scala 第一步:[Tools][Build System][New Build System] 第二步:在打开的新文件中输入: { //"cmd&quo ...

  3. Scala:case class

    Scala:case class 1.Scala中class.object.case class.case object区别 1.1 class 和 object 关系 1.2 case class ...

  4. Scala:Java 项目中混入scala代码

    Spark 是用Scala代码写的.为了调试Spark,做了如下尝试. 1.Eclipse下:Java 项目 ,Using Maven,编写了一个java 版Spark应用. Spark的代码(sca ...

  5. Scala:映射和元组

    映射是键值对偶的集合.Scala有一个通用的叫法——元组:n个对象的聚集,并不一定要相同的类型. 构造映射 键A -> 值B scala> val scores = Map()//不可变映 ...

  6. 学习Scala: 初学者应该了解的知识

    Scala开发参照清单 这里列出在开发一个Scala工程中需要参照的资料. 官网网站 http://www.scala-lang.org/ 文档网站 http://docs.scala-lang.or ...

  7. Scala:函数式编程之下划线underscore

    http://blog.csdn.net/pipisorry/article/details/52913548 python参考[python函数式编程:apply, map, lambda和偏函数] ...

  8. Scala:类,对象和特征(接口)

    http://blog.csdn.net/pipisorry/article/details/52902609 Scala类和对象 类是对象的抽象,而对象是类的具体实例.类是抽象的,不占用内存,而对象 ...

  9. Scala:集合类型Collection和迭代器

    http://blog.csdn.net/pipisorry/article/details/52902549 Scala Collection Scala 集合分为可变的和不可变的集合. 可变集合可 ...

随机推荐

  1. jq中Deferred对象的使用

    var d=$.Deferred(); //deferred下面的方法有: // ["resolve", "resolveWith", "reject ...

  2. LeetCode(56):合并区间

    Medium! 题目描述: 给出一个区间的集合,请合并所有重叠的区间. 示例 1: 输入: [[1,3],[2,6],[8,10],[15,18]] 输出: [[1,6],[8,10],[15,18] ...

  3. CNN卷积核计算

    作者:十岁的小男孩 目录 单层卷积核计算 三维卷积核计算 Padding=Valid&&Same 总结

  4. bzoj1036点权模板题

    /* HYSBZ1036 树上有1-n个结点,每个节点都有一个权值w 操作 CHANGE u t:把结点u的权值改为t QMAX u v:询问从点u到v的路径上的节点的最大权值 QSUM u v:询问 ...

  5. Linux权限命令

    Linux 基础——权限管理命令chmod   一.Linux中的文件权限与目录权限 Linux中定义了3种访问权限,分别是r.w.x.其中r表示对象是可读的,w表示对象是可写的,x表示对象是可执行的 ...

  6. 开始写博客,学习Linq(2)

    linq的功能是什么? 它将极大地改变应用程序或组件处理数据的方式.这是第一个功能. LINQ to Objects.LINQ to SQL和LINQ to XML,是LINQ三大主要功能,当然LIN ...

  7. C#对Windows文件/文件夹/目录的一些操作总结

    1.   在一个目录下创建一个文件夹 if (!System.IO.Directory.Exists(path)) System.IO.Directory.CreateDirectory(path); ...

  8. Jenkins Pipline语法

    引用自:http://baijiahao.baidu.com/s?id=1582812185263227836&wfr=spider&for=pc 引用自:https://www.cn ...

  9. python 字符串组成MySql 命令时,字符串含有单引号或者双引号导致出错解决办法

    引用自:https://blog.csdn.net/zhaoya_huangqing/article/details/48036839 一.在组成SQL语句并发送命令时完全按照Python中的样式去传 ...

  10. POJ1151Atlantis 矩形面积并 扫描线 线段树

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - POJ1151 题意概括 给出n个矩形,求他们的面积并. n<=100 题解 数据范围极小. 我们分3种 ...