Scala学习小白必看

为什么要学习Scala

因为在线计算需要Spark和Scala,Spark的底层是Scala,Scala基于Java
开发效率高,运行速度快

Scala的介绍

Scala是一门多范式的编程语言,既是面向对象也是函数式编程
函数式编程:可以把函数当成一个变量去传递给一个方法

什么是多范式

多范式:多种形态编程 常见的有过程式 函数式 泛型编程

Scala语言和Java语言的对比

相同点:

  1. Scala和Java可以无缝混编
  2. 它们都是基于jvm
  3. 它们可以互相调用

不同点:

  1. Scala类型自动推断
  2. val标识常量 var标识变量
  3. 支持函数式编程
  4. 构造器不一样
  5. Java中可以自动默认值,Scala中必须手动给默认值
  6. Scala不需要分号,但是Java必须有
  7. get set方法要自己实现
  8. scala中没有return

Scala懒加载

lazy val a = {println(12312)}

Scala中使用lazy关键字修饰变量,就是惰性变量,实现延迟加载

注意:惰性变量只能是常量,并且只有在调用惰性变量时,再回去实例化这个变量,一般使用在比较耗时的应用

Scala差值器

  1. s差值器 调用变量
    val name = "aaa" println(s"asfa:$name")

  2. f差值器
    val height = 1.73568 println(f"身高是${height}%.2f")

  3. raw差值器 原样输出
    println(raw"a\nb\b\tc")

Scala访问修饰符

  1. private:一个类的内部使用
  2. protected:自己类和子类可以访问,比java更加严格,java同一个包可以在不同的类使用
  3. public:如果没有指定修饰符,这样的成员在任何地方都可以使用

Scala类型转换

值一定是可以进行转换的,如下:

val a = "123"
a.toInt.getClass.getName

Scala技能练习

  1. 统计三个班的成绩情况,每个班有五名同学,每位同学的成绩自己输入,求出每个班的平均分和所有班级的平均分?
var aa = 0
for (c <- 1 to 3){
  println("请输入第"+c+"个班级")
  val banji = readChar()
  println("请输入五位同学的成绩")
  var count = 0
  var b = 0;
  for (a <- 1 to 5){
    val sorce = readInt()
    count+=sorce
    b+=1
  }
  println(banji+"班同学的平均成绩是:"+count/b)
  aa+=b
}
  println("三个班平均分数为"+aa/3+"分")
  1. 100个以内的数求和,求出和大于20 的当前数
var sum = 0
var c :Boolean = true
for (a <- 1 to 100 if c == true){
  sum+=a
  if(sum>=20){
    println(a)
    c = false
  }
}
println(sum)
  1. 打印出九九乘法表
for (a <- 1 to 9; b <- 1 to a) printf(a + "*" + b + "=" + a * b + {if(a==b)"\n" else "\t"})
  1. 在Scala中如何获取字符串“Hello”的首字符和尾字符
val a = "Hello"
printf(a.take(1))
printf(a.takeRight(1))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值