Scala入门必知必会

1、 为什么要学习scala?

  1. 在线计算 spark scala ,a.spark 底层是scala ,我们需要看源码
    b.scala 基于java ,开发效率高,运行速度快

2、 scala的介绍

  1. scala 是一门多范式的编程语言,即面向对象也是函数式编程
    面向对象:万物皆对象 封装 实例对象 类 继承
    函数式编程: 面向过程 函数当成编程

3、 scala语言和Java语言对比
        相同点:

  1. java和scala可以无缝混编,它们都是基于jvm

  2. 二者可以相互调用

    不同点:
    1、 类型自动推断,并如果写类型化,是写在变量名的后面
    2、val var
    3、支持函数式编程
    4、构造器不一样
    5、java中可以自动默认值,scala中必须手动给默认值
    6、scala 不需要分号,但是java 必须要有
    7、get set 方法自己实现
          age:相当于java中的getter方法
          age_$eq:相当于java中set方法
    8、java中的放回只用return scala 中没有return

5、main方法讲解
main(static=object)

  1. 语法
	关键字 方法名 (参数):返回值类型={
		方法体
		}
	def main(args: Array[String]): Unit = {
	}

6、常量和变量

  1. 定义
    常量:是在运行的过程中,其值不会发生变化的量 例如:数值3 字母A 修饰的关键字val
    变量:是在运行的过程中,其值可以发生变化的量 例如:时间,年龄 修饰的关键字var

  2. scala中的数据数据类型
    any是所有类型的超类,也成为顶级类型
    anyVal (值类型) :
             int short  byte  long  double string char boolean Uint (9个)
    长度:4    2       1       8       8          4      2          1        空
    anyRef(引用类型) :
    List map option yourclass …
    注意:java类型中没有和scala中Nothing对应的类型

  3. 懒加载

    1. scala 中使用lazy 关键字修饰变量,就是惰性变量,实现延迟加载
      注意:惰性变量只能是常量,并且只有在调用惰性变量时,才会去实例化这个变量
    2. 案例演示
	//正常的	  
    var str = {
      println("helloworld")
    }
	//懒加载的形式
		lazy val str1 = {
			  println("helloworld")
			}
	//调用这个变量
    str1
  1. 好处
    使用在比较耗时的业务中,如网络IO 磁盘IO 场景:

9、 差值器
       scala中有三种插值器

  1. 在任何字符串前面加上s,就可直接在字符串中使用变量了
val name:String="cat"
println(s"she is name is ${name}")
  1. f 插值器: 保留小数点后两位
 val height=1.23568
 println(f"身高是${height}%.2f")
  1. raw插值器:是输入字符串原样,不进行转义

在这里插入图片描述
输出结果:
在这里插入图片描述

补充知识:

访问修饰符
    private:一个类的内部可用
    protected:自己类 子类也可以被访问(这个比java更加严格,java同一个包的其他类也可以访问)
   public:如果没有指定修饰符 ,这样的成员在任何地方都可以被访问
注意:
   如果不指定的情况下,就是public

类型转换

  1. String 类型转换为Int
	val age:String ="123"
	println(age.toInt.getClass.getName)
  1. Int 类型转换为String
    val b:Int =123
    println(b.toString.getClass.getName)
  1. String类型转换为Float类型
	val c:String ="123.123"
    println(c.toFloat.getClass.getName)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值