Scala:First Steps in Scala
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的更多相关文章
- Scala:Next Steps in Scala
Array val greetStrings = new Array[String](3) greetStrings(0) = "Hello" greetStrings(1) = ...
- Scala:使用Sublime开发Scala
Scala:使用Sublime开发Scala 第一步:[Tools][Build System][New Build System] 第二步:在打开的新文件中输入: { //"cmd&quo ...
- Scala:case class
Scala:case class 1.Scala中class.object.case class.case object区别 1.1 class 和 object 关系 1.2 case class ...
- Scala:Java 项目中混入scala代码
Spark 是用Scala代码写的.为了调试Spark,做了如下尝试. 1.Eclipse下:Java 项目 ,Using Maven,编写了一个java 版Spark应用. Spark的代码(sca ...
- Scala:映射和元组
映射是键值对偶的集合.Scala有一个通用的叫法——元组:n个对象的聚集,并不一定要相同的类型. 构造映射 键A -> 值B scala> val scores = Map()//不可变映 ...
- 学习Scala: 初学者应该了解的知识
Scala开发参照清单 这里列出在开发一个Scala工程中需要参照的资料. 官网网站 http://www.scala-lang.org/ 文档网站 http://docs.scala-lang.or ...
- Scala:函数式编程之下划线underscore
http://blog.csdn.net/pipisorry/article/details/52913548 python参考[python函数式编程:apply, map, lambda和偏函数] ...
- Scala:类,对象和特征(接口)
http://blog.csdn.net/pipisorry/article/details/52902609 Scala类和对象 类是对象的抽象,而对象是类的具体实例.类是抽象的,不占用内存,而对象 ...
- Scala:集合类型Collection和迭代器
http://blog.csdn.net/pipisorry/article/details/52902549 Scala Collection Scala 集合分为可变的和不可变的集合. 可变集合可 ...
随机推荐
- 大数据处理算法--Bloom Filter布隆过滤
1. Bloom-Filter算法简介 Bloom-Filter,即布隆过滤器,1970年由Bloom中提出.它可以用于检索一个元素是否在一个集合中. Bloom Filter(BF)是一种空间效率很 ...
- 纯 Java 开发 WebService 调用测试工具(wsCaller.jar)
注:本文来自hacpai.com:Tanken的<纯 Java 开发 WebService 调用测试工具(wsCaller.jar)>的文章 基于 Java 开发的 WebService ...
- impress.js
介绍一下 impress.js是一个非常炫酷的幻灯片展示框架,依靠CSS3技术. impress.js使用起来非常简单,下面就来简单介绍一下其用法. Start 首先,当然要引入impress.js. ...
- LeetCode(55): 跳跃游戏
Medium! 题目描述: 给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 判断你是否能够到达最后一个位置. 示例 1: 输入: [2,3,1, ...
- poj3468
#include<iostream> #include<cstring> #include<cstdio> using namespace std; #define ...
- poj2019 二维RMQ模板题
和hdu2888基本上一样的,也是求一个矩阵内的极值 #include<iostream> #include<cstring> #include<cstdio> # ...
- 图解 VS2015 如何打包winform 安装程序
http://learn.flexerasoftware.com/content/IS-EVAL-InstallShield-Limited-Edition-Visual-Studio?lang=10 ...
- Python subprocess方法
import subprocess #subprocess.call("df -h",shell=True,stdout=subprocess.PIPE)#打印到视图,但是不能保存 ...
- POJ1487 Single-Player Games 高斯消元
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - POJ1487 题解概括 给出多个树形结构,由小写字母和数字表示,每个小写字母表示一棵小树.现在,以a为根节点 ...
- class path resource [spring/applicationContext.xml] cannot be opened because it does not exist
1.查看路径有没有写错 2.编辑器认为你的文件不是 source folders(原文件),需要你手动将文件改过来