Scala入门篇(二):基本语法(与JAVA对比)

1. 数据类型

Scala

在这里插入图片描述
文件获取地址

JAVA

待更新

2. 运算符

ScalaJAVA
++
==类似于 Java 中的 equals比较两个变量本身的值,即两个对象在内存中的首地址
equals 比较字符串中所包含的内容是否相同

Scala 运算符本质

在 Scala 中其实是没有运算符的,所有运算符都是方法
  • 当调用对象的方法时,点.可以省略
  • 如果函数参数只有一个,或者没有参数,()可以省略
object TestOpt {
	def main(args: Array[String]): Unit = {
		// 标准的加法运算
		val i:Int = 1.+(1)
		// (1)当调用对象的方法时,.可以省略
		val j:Int = 1 + (1)
		// (2)如果函数参数只有一个,或者没有参数,()可以省略
		val k:Int = 1 + 1
		
		println(1.toString())
		println(1 toString())
		println(1 toString)
	}
}

3. 控制流程

3.1 if-else

Scala 中 if else 表达式其实是有返回值的,具体返回值取决于满足条件的
代码体的最后一行内容

object TestIfElse {
	def main(args: Array[String]): Unit = {
		println("input age")
		var age = StdIn.readInt()
		val res :String = if (age < 18){
								"童年"
							}else if(age>=18 && age<30){
								"中年"
							}else{
								"老年"
							}
		println(res)
	}
}

当然采用与JAVA相同的写法亦可

object TestIfElse {
	def main(args: Array[String]): Unit = {
		println("input age")
		var age = StdIn.readInt()
		if (age < 18){
			println("童年")
		}else if(age>=18 && age<30){
			println("中年")
		}else{
			println("老年")
		}
	}
}

Scala 中返回值类型不一致,取它们共同的祖先类型

object TestIfElse {
	def main(args: Array[String]): Unit = {
		 println("input age")
		 var age = StdIn.readInt()
		 val res:Any = if (age < 18){
						 	"童年"
						 }else if(age>=18 && age<30){
						 	"中年"
						 }else{
						 	100
						 }
		 println(res)
	 }
}

三元运算符的 if else 实现

val res:Any = if (age < 18) "童年" else "成年"

3.2 switch

在 Scala 中没有 Switch,而是使用模式匹配来处理

3.3 for

for 推导式或 for 表达式说明
->
to[ , ]
until[ , )
by循环步长
if 表达式循环保护式(也称条件判断式,守卫)
yield循环返回值
reverse倒序
val res = for(i <- 1 to 10) yield i * 2
    println(res)
Vector(2, 4, 6, 8, 10, 12, 14, 16, 18, 20
for (i <- 1 to 3 if i != 2 ; j <- 3 until 10 by 2)
	print( i + " * " + j + " = " + i * j  + "\t")
1 * 3 = 3	1 * 5 = 5	1 * 7 = 7	1 * 9 = 9	3 * 3 = 9	3 * 5 = 15	3 * 7 = 21	3 * 9 = 27	

3.4 while

无返回值,类型为Unit

3.5 循环中断

Scala 内置控制结构特地去掉了 break 和 continue
Scala中使用   breakable控制结构   来实现 break 和 continue 功能

package ch03

import scala.util.control.Breaks
import scala.util.control.Breaks._

object TestBreakable {
  def main(args: Array[String]): Unit = {
//    实现中断方式一 : 抛出异常
    println("--------------------实现中断方式一 : 抛出异常--------------------")
    try{
      for(i <- 1 to 5){
        if (i == 3)
          throw new RuntimeException
        println(i)
      }
    }catch {//模式匹配(与switch类似)
      case e : Exception =>
    }

    //    实现中断方式二 : 使用Breakable
    // import scala.util.control.Breaks
    println("--------------------实现中断方式二 : 使用Breakable--------------------")
    Breaks.breakable(
      for(i <- 1 to 5){
        if (i == 3)
          Breaks.break()
        println(i)
      }
    )

    //    实现中断方式三 : 使用breakable
    // import scala.util.control.Breaks._ 相当于 python中 from XXX import *
    println("--------------------实现中断方式三 : 简写breakable--------------------")
    breakable(
      for(i <- 1 to 5){
        if (i == 3)
          break()
        println(i)
      }
    )
    
  }
}
ScalaJAVA
方式一throw Exceptionthrow Exception
方式二Breaks.breakable( xxx ; Breaks.break() ; xxx;)
方式二breakable( xxx ; break() ; xxx;)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值