【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)来决定执行的代码块. 计算机之所以能做很多自动化的任务,因为它可以自己做条件判断. 比如,输入用户 ...
随机推荐
- CPP_类默认函数:构造函数,拷贝构造函数,赋值函数和析构函数
类默认函数:构造函数,拷贝构造函数,赋值函数和析构函数 // person.h #ifndef _PERSON_H_ #define _PERSON_H_ class Person{ public : ...
- 接口与virtual,override,new关键字
一,类继承接口 1,首先我们定义一个简单的ITeacher接口,并定义一个Professor类继承它. public interface ITeacher { void Print(); } publ ...
- hive2.3.2安装使用
hive的安装简单一些,使用也比较简单,基础hadoop搭建好之后,只要初始化一些目录和数据库就好了 安装需要做几件事: 1.设立一个数据源作为元数据存储的地方,默认是derby内嵌数据库,不过不允许 ...
- win10 oracle11g彻底删除
参考以下两篇: 卸载oracle11g步骤: 1.首先关掉所有oracle的相关服务,然后找到oracle的卸载程序Universal Installer: 然后点击卸载产品,然后点击展开全部,将主 ...
- matlab知识点汇集
1.设置图线宽度 set( haxis, 'LineWidth', 1.0 ); ----这是 set函数, 'LineWidth'就是axis的线宽度属性,其值默认为0.5,这里可以改成1.0了 ...
- JS函数重载解决方案
JS的函数定义可以指定形式参数名称,多多少少我们会以为js至少可以支持参数个数不同的方法重载,然而遗憾的是这仅仅是一个假象,js所有的参数都是以arguments传递过去的,这个参数类似于数组,在函数 ...
- mysql小题趣事
题一 答案: case when +条件 +then 显示什么 +else+显示另外什么+end
- Numpy 用于数组的文件输入和输出
将数组以二进制格式保存 np.save 和np.load 是读写磁盘数组数据的两个主要函数.默认情况下,数组是以未压缩的原始二进制格式进行保持在扩展名 为.npy的文件中的 如果文件路径末尾没有扩展名 ...
- 第三百三十八节,Python分布式爬虫打造搜索引擎Scrapy精讲—深度优先与广度优先原理
第三百三十八节,Python分布式爬虫打造搜索引擎Scrapy精讲—深度优先与广度优先原理 网站树形结构 深度优先 是从左到右深度进行爬取的,以深度为准则从左到右的执行(递归方式实现)Scrapy默认 ...
- (转)ffmpeg 从mp4上提取H264的nalu
出自:http://blog.csdn.net/gavinr/article/details/7183499 1.获取数据ffmpeg读取mp4中的H264数据,并不能直接得到NALU,文件中也 ...