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. 大数据处理算法--Bloom Filter布隆过滤

    1. Bloom-Filter算法简介 Bloom-Filter,即布隆过滤器,1970年由Bloom中提出.它可以用于检索一个元素是否在一个集合中. Bloom Filter(BF)是一种空间效率很 ...

  2. 纯 Java 开发 WebService 调用测试工具(wsCaller.jar)

    注:本文来自hacpai.com:Tanken的<纯 Java 开发 WebService 调用测试工具(wsCaller.jar)>的文章 基于 Java 开发的 WebService ...

  3. impress.js

    介绍一下 impress.js是一个非常炫酷的幻灯片展示框架,依靠CSS3技术. impress.js使用起来非常简单,下面就来简单介绍一下其用法. Start 首先,当然要引入impress.js. ...

  4. LeetCode(55): 跳跃游戏

    Medium! 题目描述: 给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 判断你是否能够到达最后一个位置. 示例 1: 输入: [2,3,1, ...

  5. poj3468

    #include<iostream> #include<cstring> #include<cstdio> using namespace std; #define ...

  6. poj2019 二维RMQ模板题

    和hdu2888基本上一样的,也是求一个矩阵内的极值 #include<iostream> #include<cstring> #include<cstdio> # ...

  7. 图解 VS2015 如何打包winform 安装程序

    http://learn.flexerasoftware.com/content/IS-EVAL-InstallShield-Limited-Edition-Visual-Studio?lang=10 ...

  8. Python subprocess方法

    import subprocess #subprocess.call("df -h",shell=True,stdout=subprocess.PIPE)#打印到视图,但是不能保存 ...

  9. POJ1487 Single-Player Games 高斯消元

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - POJ1487 题解概括 给出多个树形结构,由小写字母和数字表示,每个小写字母表示一棵小树.现在,以a为根节点 ...

  10. class path resource [spring/applicationContext.xml] cannot be opened because it does not exist

    1.查看路径有没有写错 2.编辑器认为你的文件不是 source folders(原文件),需要你手动将文件改过来