当前位置: 首页 > article >正文

Scala--2

package scala02

object Scala07_typeCast {
  def main(args: Array[String]): Unit = {
    //  TODO 隐式转换
    //    自动转换
    val b: Byte = 10
    var i: Int = b + 10
    val l: Long = b + 10 + 100L
    val fl: Float = b + 10 + 100L + 10.5f
    val d: Double = b + 10 + 100L + 10.5f + 20.00
    println(d.getClass.getSimpleName)

    //    把精度大的数值赋值给精度小的数据类型 会报错
    //      val d1:Float=3.5  ERROR
    val f: Double = 3.5f

    //    byte short char 不会相互转换
    //    val b1:Char=b error
    //    byte short char可以计算 int
    val b1: Byte = 10
    val b2: Byte = 20
    val i1: Int = b1 + b2

    val s: Short = 100
    val i2: Int = b1 + 2

    //    int和int相加
    val i3: Int = 1000
    val i4: Int = 1000
    val i5 :Int =i3+i4
    val i6: Int = b + s + 'a'
    println(i6)

    // TODO 强制类型转换
//    类型从大转小
    val d1:Double=10.5
    val l1: Long = d1.toLong
    println(l1)
//    如果想完成四舍五入效果
    (d1+0.5).
    val l2:Long = (d1+0.5).toLong
    println(l2)
//   TODO 数值类型和STRING类型转换
    val str:String="100"
    val int: Int = str.toInt
    println(int.getClass.getSimpleName)
    val int1:Int=100
    val string: String = int1.toString
    println(string.getClass.getSimpleName)
//    不能跨级转换
//    val int2:Int="100.5".toInt error
val int2:Int="100.5".toDouble.toInt
    println(int2)

  }


}

package scala03

object scala01_opera {
  def main(args: Array[String]): Unit = {
//    == 和 equals 作用一样 比较具体值大小
    val s1: String = new String("aaa")
    val s2:String=new String("aaa")
    println(s1.equals(s2))
    println(s1 == s2)
//    true true
//    比较地址值
    println(s1.eq(s2))

//    运算符本质就是方法
    1+1
    val i: Int = 1.+(1)
    println(i)
//    调方法的时候.可以省略
//    当方法中的参数只有一个的时候 括号也可以省略

  }

}

package scala04

object scala01_for_if_else {
  def main(args: Array[String]): Unit = {
    //    三元运算符
    val age: Int = 10
    val str1: String = if (age > 18) "成年" else "未成年"

  }

}
package scala04

import scala.collection.parallel.immutable

object scala02_for {
  def main(args: Array[String]): Unit = {
    //    for
    //    scala中的循环变量i 不能声明到for之外
    for (i <- 0 to 5) {
      println(i)
    }
    println("====================================")
    //   不包含5
    for (i <- 0 until (5)) {
      println(i)
    }
    //    循环本质
    //    f范围内的元素放入一个集合中 ,遍历集合
    val inclusive: Range.Inclusive = 0.to(5)
    for (elem <- inclusive) {
      println(elem)
    }
    //    for 循环的补充语法
    //    循环守卫
    for (i <- 0 to 5) {
      if (i < 3) {
        println(i)
      }
    }
    println("====================================")
    for (i <- 0 to 5 if i < 3) {
      println(i)
    }
    println("====================================")
    //    循环步长
    for (i <- 0 to 10 by 2) {
      println(i)
    }
    for (i <- 0.0 to 10 by 0.5) {
      println(i)
    }
    println("====================================")
    //    嵌套循环
    for (i <- 0 to 3){
      for (j<-0to 4){
        println(s"$i*$j=${i*j}\t")
      }
      println()
    }
    for (i<-0 to 3;j<-0 to 4){
      println(s"$i*$j=${i*j}\t")
      if (i==4){
        println()
      }

    }
    println("====================================")
//    引入变量
    for (i<-0 to 5 ;a=1+i){
      println(a)
    }

//    循环返回值 yield 关键字进行标识
val unit: Unit = for (i <- 0 to 5) {
  println(i)
  //}
  //val ints : immutable.IndexedSeq[Int]=for
}
//    倒序打印
for (i <-0 to 5 reverse){
  println(i)
}
    println("====================================")

    for (i <-0 to 5 by -1){
      println(i)
    }

  }

}

 

package scala04

import scala.collection.parallel.immutable

object scala02_for {
  def main(args: Array[String]): Unit = {
    //    for
    //    scala中的循环变量i 不能声明到for之外
    for (i <- 0 to 5) {
      println(i)
    }
    println("====================================")
    //   不包含5
    for (i <- 0 until (5)) {
      println(i)
    }
    //    循环本质
    //    f范围内的元素放入一个集合中 ,遍历集合
    val inclusive: Range.Inclusive = 0.to(5)
    for (elem <- inclusive) {
      println(elem)
    }
    //    for 循环的补充语法
    //    循环守卫
    for (i <- 0 to 5) {
      if (i < 3) {
        println(i)
      }
    }
    println("====================================")
    for (i <- 0 to 5 if i < 3) {
      println(i)
    }
    println("====================================")
    //    循环步长
    for (i <- 0 to 10 by 2) {
      println(i)
    }
    for (i <- 0.0 to 10 by 0.5) {
      println(i)
    }
    println("====================================")
    //    嵌套循环
    for (i <- 0 to 3){
      for (j<-0to 4){
        println(s"$i*$j=${i*j}\t")
      }
      println()
    }
    for (i<-0 to 3;j<-0 to 4){
      println(s"$i*$j=${i*j}\t")
      if (i==4){
        println()
      }

    }
    println("====================================")
//    引入变量
    for (i<-0 to 5 ;a=1+i){
      println(a)
    }

//    循环返回值 yield 关键字进行标识
val unit: Unit = for (i <- 0 to 5) {
  println(i)
  //}
  //val ints : immutable.IndexedSeq[Int]=for
}
//    倒序打印
for (i <-0 to 5 reverse){
  println(i)
}
    println("====================================")

    for (i <-0 to 5 by -1){
      println(i)
    }

  }

}

 

package scala04

import scala.util.control.Breaks
import scala.util.control.Breaks.{break, breakable}

object scala04_break {
  def main(args: Array[String]): Unit = {
    //scala中使用breaks体系进行循环终止
    Breaks.breakable(
      for (i <- 0 to 10) {
        if (i == 5) {
          Breaks.break()
        }
        println(i)
      }


    )
//    简化写法
    breakable(
      for (i <-0 to 10){
        if(i==5){
          break()
        }
        println(i)
      }
    )
    println("===================================================")
//    scala 中循环终端原理就是使用异常处理体系
    try {
      for (i <- 0 to 10) {
        if (i == 5) {
          //        通过抛一场循环打断
          throw new RuntimeException
        }
        println(i)
      }
    }catch {
      case e:RuntimeException => println ("循环终端")

    }finally {
      println("关闭资源....")
    }



  }

}

http://www.kler.cn/a/160217.html

相关文章:

  • NVR录像机汇聚管理EasyNVR多品牌NVR管理工具/设备:大华IPC摄像头局域网访问异常解决办法
  • 重卡穿越商都,ROG DAY 2024郑州站高燃来袭
  • arcgis做buffer
  • 【excel】easy excel如何导出动态列
  • 【CVPR2024】2024年CVPR的3D 目标检测的综述(还在补充中)
  • Excel筛选的操作教程
  • 智能优化算法应用:基于蜜獾算法无线传感器网络(WSN)覆盖优化 - 附代码
  • 一篇文章带你详细了解C++智能指针
  • 云上守沪 | 云轴科技ZStack成功实践精选(上海)
  • 3.2 Puppet 和 Chef 的比较与应用
  • Android--Jetpack--Lifecycle详解
  • UVa1583生成元(Digit Generator)
  • Nero刻录光盘软件-极好用
  • 华为对优秀项目经理的三点要求
  • 学习TypeScrip2(任意类型any和unknown)
  • 前端使用 xlsx.js 工具读取 excel 遇到时间日期少 43 秒的解决办法
  • 【SQL思考记录】力扣181. 超过经理收入的员工
  • inBuilder低代码平台新特性推荐-第十三期
  • Python项目部署利器:轻松上手Git和GitHub
  • No matching version found for @babel/compat-data@^7.23.5 处理
  • 绘制纹理C++
  • Windows 安装 flash-attention 和 bitsandbytes
  • 根文件系统初步测试
  • YOLOv8改进 | TripletAttention三重注意力机制(附代码+机制原理+添加教程)
  • 如何解决syntaxerror: more than 255 arguments 报错
  • HG/T 5367.2-2022 轨道交通车辆耐电弧绝缘涂料检测