Scala常用代码
来源:互联网 发布:linux view 编辑:程序博客网 时间:2024/05/18 03:29
遍历
var arr = Array("001a", "001b", "002a")for (a <- arr) { print(a + " ")}println()for (i <- 0 to arr.length - 1) { print(arr(i) + " ")}println()for (i <- 0 until arr.length) { print(arr(i) + " ")}
过滤
如果想过滤出以”b”结尾的元素,可以这样:for (a <- arr) { if (!a.endsWith("b")) { print(a + " ") }}其实可以更简单:
for (a <- arr if !a.endsWith("b")) { print(a + " ")}如果还只想要以”001”开头:
var arr = Array("001a", "001b", "002a")for (a <- arr if !a.endsWith("b"); if a.startsWith("001")) { print(a + " ")}
嵌套循环
for (i <- 0 to 2; j <- 1 to 3 if i != j) { print(i * 10 + j) print(" ")}//1 2 3 12 13 21 23
构造新集合
以上的例子都只是遍历完后就释放,除此之外,还可以创建一个值去记录每一次的迭代,只要在for表达式之前加上关键字yield。val c = Array(2, 4, 5)val result = for (elem <- c) yield elem * 2println(Arrays.toString(result)) //[4, 8, 10]
异常
抛出异常:val half = if (arg % 2 == 0) arg / 2 else throw new RuntimeException()捕获异常:
try { val a = if (false) 1 else throw new IllegalArgumentException("null")} catch { case e: IllegalArgumentException => println(e.getMessage) case e: Exception => println(e.getMessage)} finally { println("finally")}try-catch-finally也有产生值,返回的结果是,如果没有异常抛出,则对应于try字句;如果抛出异常并被捕获,则对应与相应的catch字句。如果异常被抛出但没有被捕获,表达式就没有返回值。由finally字句计算得到的值,即使有也会被抛弃。
例如,如果函数有如下定义:
def f() : Int = try ( return 1 ) finally ( return 2 )
def g() : Int = try ( 1 ) finally ( 2 )
调用个f()会返回2,调用g()会返回1。
match表达式
Scala的match表达式类似与Java中的switch语句。val arg = "a"arg match { case "a" => println("a") case "b" => println("b") case _ => println("default")}Scala用”_”作为占位符表达位置值的通配符。每个case中并没有break,因为break是隐含的,即不允许从上一个case落入到下一个里面去。而且与Java的switch相比,match表达式还可以产生值。
val arg = "a"val num = arg match { case "a" => 1 case "b" => 2 case _ => 0 }Scala不再使用break和continue,需要用额外的变量做流程控制。
0 0
- Scala常用代码
- 代码+图文讲解spark中scala常用正则匹配
- Scala 常用语法
- scala常用语法总结
- scala中的常用集合
- Scala常用函数
- scala常用collection总结
- scala常用的类型
- Scala常用表达式
- Scala常用类
- Scala 基础语法代码
- scala调用java代码
- 《快学scala》代码
- scala代码格式化
- scala的一行代码
- scala 代码示例
- scala调用java代码
- scala代码求质数
- CentOS,以及跟REDHAT有什么区别。
- 【机房合作】SQL语句使用
- neuq oj 1051: 谭浩强C语言(第三版)习题6.7
- 机器学习 - 开篇
- AndroidStudio NDK-JNI简单实例
- Scala常用代码
- 单点登录cas常见问题(九) - android app怎么接入cas单点登录系统?
- 基于jquery的,简单的php 表单验证组件
- 用Xmanager软件在Windos下远程连接Linux
- 自定义datepickerDialog的样式
- Servlet的使用
- SQL基础
- Feed the dogs(划分树,据说各种树可做)
- 最详细的Log4j使用教程