【scala】 scala 条件控制 和异常处理(二)
1.scala 变量定义 ,var val 区别。
var 定义可变变量
val 定义不可变变量,scala 推荐使用。相当于Java的final 变量.
scala中包含的基本数据类型详情如下表所示:
| 序号 | 基本类型 | 增强类型 | 大小 | 取值范围 |
|---|---|---|---|---|
| 1 | Byte | RichByte | 8-bit | -128 ~ 127 |
| 2 | Char | RichChar | 16-bit | 0 ~ 65535 |
| 3 | Short | RichShort | 16-bit | -32768 ~ 32767 |
| 4 | Int | RichInt | 32-bit | -2^31 ~ 2^31 -1 |
| 5 | Long | RichLong | 64-bit | -2^63 ~ 2^63 -1 |
| 6 | Float | RichFloat | 32-bit | |
| 7 | Double | RichDoube | 64-bit |
2.scala 条件控制 if else if else
3. for 增强和 yield类型推导
to ,until 遍历集合的区别
4.scala 异常处理
try catch {case ex: Exception=> e}finally{}
5. 可变参数方法定义
参数类型* *定义多个参数
6. def 方法定义的注意
def 方法名(参数):返回值={方法体}
返回值省略,默认 Any ,Any相当于java中的Object
object Control {
def main(args:Array[String]): Unit ={
val a=5
// scala 尽量不用return,最后一个表达式的值 作为值返回
val b = if(a<7){val c=a+1;c+3} else if (a==5) 5 else 3
println(b)
//数组初始化
val c:Array[String]=Array("a","b","d")
//变量定义, 变量名:变量类型
val d:String = forAry(c)
println(d)
//求和
val result= sum(23,32,32,32,32)
println(" sum result :"+result)
// 将整个区间作为参数序列来处理 :_*
val newResult = sum(1 to 10:_*)
println("sum newResult: "+newResult)
//数组格式化输出 toBuffer
println(yieldAry().toBuffer)
println("--------------------")
filter()
//异常
exception()
}
/**
* 遍历数组
* @param ary
* @return
*/
def forAry(ary:Array[String]):String={
val newBuilder=new StringBuilder
// to 是 i到 区间,包含开始和结尾
for(i<-10 to ary.length-1){
newBuilder.append(ary.apply(i))
}
// unit 是 0 到 length-1 之间
for(i<-0 until ary.length){
newBuilder.append(ary.apply(i))
}
//普通遍历
for(a<-ary) println( a)
newBuilder.toString()
}
/**
* yield 关键字 推导生成新的数组
* @return Array[Int]
*/
def yieldAry():Array[Int]={
val ary :Array[Int]= Array(1,32,3,31,43)
//until 从 0 到 ary.length-1 之间的下标
for(i<-0 until ary.length){
val d:Int=ary.apply(i)
val e= d.*(122);
// println(e)
}
//yield 类型推导为Array
for(arg<-ary) yield arg *2
}
/**
* 可变长参数定义 *
* @param args
* @return
*/
def sum(args:Int*):Long={
var result : Long=0
//for 循环遍历
for(arg<-args){
result += arg
}
return result
}
/**
* 数组过滤
*/
def filter(): Unit ={
//定義一個數組
val ary =Array(12,2,12,43,2,12,1)
//去重 过滤
//保留符合条件的元素 _.%(2)==0 保留偶数,
// map(_*2) 是各个元素乘以 2
val a = ary.distinct.filter(_.%(2)==0).map(_*2)
println(a.toBuffer)
println(a.sum)//元素求和
}
/**
* 异常处理
*/
def exception():Unit={
//定义一个定长的数组
val ary = new Array[String](2)
ary(0)="1234e"
var it = -2
try{
it = ary(0).toInt
}
catch {
case ex: FileNotFoundException => it = 0
case ex: NumberFormatException => it = 12
case ex:Exception => it = -3
}finally {
println(it)
}
}
}
【scala】 scala 条件控制 和异常处理(二)的更多相关文章
- Scala学习教程笔记一之基础语法,条件控制,循环控制,函数,数组,集合
前言:Scala的安装教程:http://www.cnblogs.com/biehongli/p/8065679.html 1:Scala之基础语法学习笔记: :声明val变量:可以使用val来声明变 ...
- Scala入门系列(二):条件控制与循环
条件控制与循环 if表达式 定义:if表达式是有值的,就是if或者else中最后一行语句返回的值. 例如:val isAdult = if (age > 18) 1 else 0 类型推断: ...
- Scala深入浅出实战经典-----002Scala函数定义、流程控制、异常处理入门实战
002-Scala函数定义.流程控制.异常处理入门实战 Scala函数定义 语句结束无分号 定义无参函数 def 函数名称(参数名称:参数类型)[:Unit=]{ 函数体 } 老师的代码 我的实际代码 ...
- 2.scala控制结构、函数、异常处理
2.scala控制结构.函数.异常处理---小书匠,在线编辑器,MARKDOWN,Evernote,文件版本 a:focus { outline: thin dotted #333; outline: ...
- Dream------scala--函数定义、流程控制、异常处理
Dream------scala--函数定义.流程控制.异常处理 一.函数的定义 1.新建工程
- Python的条件控制及循环
一.条件控制: 1.If语句的使用: Python中if语句的一般形式如下所示: 上图中: 如果 "score>=90" 为 True 将执行 "print(‘优秀 ...
- Shell学习(三)——Shell条件控制和循环语句
参考博客: [1]Shell脚本的条件控制和循环语句 一.条件控制语句 1.if语句 1.1语法格式: if [ expression ] then Statement(s) to be execut ...
- Python学习--04条件控制与循环结构
Python学习--04条件控制与循环结构 条件控制 在Python程序中,用if语句实现条件控制. 语法格式: if <条件判断1>: <执行1> elif <条件判断 ...
- python基础之条件控制与循环
Python3 条件控制 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. 计算机之所以能做很多自动化的任务,因为它可以自己做条件判断. 比如,输入用户 ...
随机推荐
- 【jquery】fancybox 是一款优秀的 jquery 弹出层展示插件
今天给大家分享一款优秀的 jquery 弹出层展示插件 fancybox.它除了能够展示图片之外,还可以展示 flash.iframe 内容.html 文本以及 ajax 调用,我们可以通过 css ...
- Map总结(HashMap, Hashtable, TreeMap, WeakHashMap等使用场景)
概要 学完了Map的全部内容,我们再回头开开Map的框架图. 本章内容包括:第1部分 Map概括第2部分 HashMap和Hashtable异同第3部分 HashMap和WeakHashMap异同 转 ...
- bootstrap底部消息提示插件
http://www.bootcss.com/p/messenger/ 具体效果下载插件查看
- 完全图解RNN、RNN变体、Seq2Seq、Attention机制
完全图解RNN.RNN变体.Seq2Seq.Attention机制 本文主要是利用图片的形式,详细地介绍了经典的RNN.RNN几个重要变体,以及Seq2Seq模型.Attention机制.希望这篇文章 ...
- mysql数据库性能测试报告
网上有写的好的模板, 直接复链接了: 1. http://blog.csdn.net/mituan1234567/article/details/45247989 2. https://msdn.mi ...
- 【Python】【Flask】前端调用后端方法返回页面
后端代码: @app.route("/test",methods=['POST','GET']) def test(): return "我是测试的" 前端代码 ...
- Linux-HA实战(3)— 基于Pacemaker搭建TFS Nameserver HA
上篇文章简单介绍了下基于Heartbeat的虚拟IP配置,个人觉得简单易用已经能够应付大部分场景了.但是既然花时间研究HA,如果仅限于一个虚拟IP飘来飘去未免有点糊弄任务了,因此这篇文章打算介绍下基于 ...
- 性能优化系列三:JVM优化
一.几个基本概念 GCRoots对象都有哪些 所有正在运行的线程的栈上的引用变量.所有的全局变量.所有ClassLoader... 1.System Class.2.JNI Local3.JNI Gl ...
- Java如何合并两个数组?
Java中,如何合并两个数组? 示例 本例展示了如何使用List类的List.Addall(array1.asList(array2))方法和Array类的Arrays.toString()方法将两个 ...
- memcached -- 运行memcached
Memcached 运行 Memcached命令的运行: $ /usr/local/memcached/bin/memcached -h 注意:如果使用自动安装, memcached 命令位于 /us ...