Sala入门

 

目录

Scala概述

var vs val

Scala基本数据类型

lazy在Scala中的应用


Scala概述

Hadoop生态圈:语言常用Java

Spark生态圈:语言常用scala

scala运行于Java平台(Java虚拟机)之上,兼容现有的Java程序,scala的编译模型(独立编译、动态类加载)与Java和C#一样,所以scala代码可以调用Java类库

由于其运行于Java平台之上,所以首先你需要有一个JDK,1.8以上的版本,java -version(Make sure you have version 1.8 or 11.),scala版本选择的是2.11.8,系统是mac,直接去官网下载解压就可以了,在配置一下系统环境变量。

scala美航代码并不强求使用;结束。

var vs val

  • val: 值
    • 类比Java的final, 例如final int num= 100;
    • val 值名称: 类型=xxx
    • val定义的,不可以重新赋值
  • var:变量
    • var 变量名称: 类型=xxx
    • var定义的,可以重新赋值,但是必须是同类型的

Scala基本数据类型

  • Byte/Char
  • Short/Int/Long/Float/Double
  • Boolean

scala VS Java

  • 相同点
    • Boolean类型只能是true或者false
    • 整形字面值默认类型是Int,浮点型字面值默认类型是Doble(例如,10.0是Double而不是Float,例如val e: Float = 1.0f,不可以写成val e: Float = 1.0,因为1.0是Double类型的,不能用于Float类型的赋值),得到Long 类型,字面值后面加L(例如3L),得到Float类型,字面值后面加f(例如3.0f)
    • 小类型向大类型可以隐式转换,大类型像小类型转换需要强转
  • 些微的区别
    • Java的基本数据类型的名字是小写的
    • Java判断引用是否是类的实例:引用 instanceof 类型,scala: 值/变量.isInstanceOf[类型]
      • String str = "op";
        System.out.println("a" instanceof String); //输出:true
        System.out.println("a" instanceof String); //输出:true
        System.out.println(1 instanceof int);// 报错:意外的数据类型,需要引用,找到int
        2.isInstanceOf[Int] // res1: Boolean = true
        
        var num = 3L //num: Long = 3
        num.isInstanceOf[Int] //res2: Boolean = false
        
        val num1: Int = 3//num1: Int = 3
        num1.isInstanceOf[Long]//res3: Boolean = false
    • 关于类型转换
      • int num = (int)3.0;
        var d: Double = 4.0f //d: Double = 4.0,隐式转换:小类型=>大类型
        val num1: Int = d.asInstanceOf[Int] //num1: Int = 4
        
        var num:Int = 3.0.asInstanceOf[Int] //num: Int = 3

         

lazy在Scala中的应用

lazy是延迟加载的意思,只有在第一次使用的时候才会加载

例如:

scala> val i = 1 //i: Int = 1

scala> lazy val a = 1 //a: Int = <lazy>
scala> a //res0: Int = 1

 

参考:慕课网-学习Scala进击大数据Spark生态圈,收获高薪未来

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值