Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 959|回复: 0

【scala】 scala 条件控制 和异常处理(二)

[复制链接]
  • TA的每日心情
    奋斗
    2024-4-6 11:05
  • 签到天数: 748 天

    [LV.9]以坛为家II

    2034

    主题

    2092

    帖子

    70万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    705612
    发表于 2021-6-26 08:56:56 | 显示全部楼层 |阅读模式

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

      

    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-5-1 18:58 , Processed in 0.089094 second(s), 29 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表