【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)
    }
  }

}

  

时间: 2024-08-08 00:58:46

【scala】 scala 条件控制 和异常处理(二)的相关文章

Scala学习笔记一之基础语法,条件控制,循环控制,函数,数组,集合

前言:Scala的安装教程:http://www.cnblogs.com/biehongli/p/8065679.html 1:Scala之基础语法学习笔记: 1:声明val变量:可以使用val来声明变量,用来存放表达式的计算结果,但是常量声明后是无法改变它的值的,建议使用val来声明常量: 声明var变量:如果要声明可以改变的引用,可以使用var变量,声明的常量的值可以改变. 3:指定类型:无论声明val变量还是声明var变量.都可以手动指定其类型,如果不指定,scala会自动根据值,进行类型

Scala深入浅出实战经典-----002Scala函数定义、流程控制、异常处理入门实战

002-Scala函数定义.流程控制.异常处理入门实战 Scala函数定义 语句结束无分号 定义无参函数 def 函数名称(参数名称:参数类型)[:Unit=]{ 函数体 } 老师的代码 我的实际代码 原因是集成开发环境自带的版本为2.11.0 变量 常量(不可变)声明 val 变量声明 var 无参函数的调用也无需加括号() 定义有参有返回值的函数 def 函数名称(参数名称:参数类型...):返回值类型={ 函数体 } 老师代码 注意最后一个是b是本函数的返回值 默认最后一行为返回值 流程控

Scala深入浅出实战经典-----002-Scala函数定义、流程控制、异常处理入门实战

002-Scala函数定义.流程控制.异常处理入门实战 Scala函数定义 语句结束无分号 定义无参函数 def 函数名称(参数名称:参数类型)[:Unit=]{ 函数体 } 老师的代码 我的实际代码 原因是集成开发环境自带的版本为2.11.0 变量 常量(不可变)声明 val 变量声明 var 无参函数的调用也无需加括号() 定义有参有返回值的函数 def 函数名称(参数名称:参数类型...):返回值类型={ 函数体 } 老师代码 注意最后一个是b是本函数的返回值 默认最后一行为返回值 流程控

王家林亲传《DT大数据梦工厂》第二讲Scala函数定义、流程控制、异常处理入门

你想了解大数据,你想成为年薪百万吗?那你还等着什么,快点来吧!跟着王家林老师学习spark大数据 第二讲主要讲了Scala函数定义.流程控制.异常处理入门 函数定义: 关键字(def) 函数名称 参数(参数名称:参数类型):返回内容类型  =  { 函数体 } 注意: Unit:空的返回内容 Scala结束语是不需要写分号 下面一代码为例: //不带参数 Object  ScalaBasics{ def doWhile(){ var line = “” do{ line = readLine()

2.scala控制结构、函数、异常处理

a:focus { outline: 5px auto -webkit-focus-ring-color } a:hover,a:active { outline: 0 } a { color: #0088cc; text-decoration: none } a:hover { color: #005580; text-decoration: underline } p { margin: 0 0 1.1em } small { font-size: 85% } strong { font-w

Scala 中的函数式编程基础(二)

主要来自 Scala 语言发明人 Martin Odersky 教授的 Coursera 课程 <Functional Programming Principles in Scala>. 2. Higher Order Functions 把其他函数作为参数或者作为返回值,就是 higher order functions,python 里面也可以看到这样使用的情形.在酷壳上的博客有一个例子就是将函数作为返回值. 2.1 匿名函数 在 python 里边叫 lambda 函数,常常与 map(

从大数据菜鸟走上大师的历程 第二讲:函数定义,流程控制,异常处理

Scala 第二讲 函数定义,流程控制,异常处理 For 循环  for(左边为单个对象obj  <-  右边为对象集合objs ) for 循环里把右边的对象赋给左边 现在正是学习大数据的最好机遇,不花一分钱就可以成为大数据高手,实现年薪50万的梦想. 王家林的第一个中国梦:免费为全社会培养100万名优秀的大数据从业人员! 如果您有兴趣请点击这个链接进入大数据的学习 http://blog.sina.com.cn/s/blog_8fbd39ee0102vto3.html 如果您确实感觉视频教程

Dream------scala--函数定义、流程控制、异常处理

Dream------scala--函数定义.流程控制.异常处理 一.函数的定义 1.新建工程 2.创建一个object package com.wls.scala.hello /** * Created by wls on 2015年8月11日21:06:332. */ object ScalaBasics { def main(args : Array[String]): Unit ={ } } def main(args : Array[String]) : Unit={} 上面这个就项目

Scala-02函数定义、流程控制、异常处理

scala-02函数定义.流程控制.异常处理 一.Scala函数定义: (scala函数定义时候默认会导入包) (1)val:类似java中final类型的变量(常量) 1,基本格式:val 变量名:变量类型 = 值 2,其中有时变量类型可以省略,可以自动识别 3,变量不能赋值,修改 var :等同于java中的非final型变量 (2)有参数的函数定义 def 函数名(参数列表,...):返回结果类型={} Object MyScala{ def Mysca(x:int ,y:int):int