大数据(八)---------初识scala

------------本文会在一些地方和Java进行对比,以便更好理解、学习Scala

为什么要学习scala?

  1. spark底层是scala  ,要想学好spark  我们就必须会scala这门语言
  2. scala语言有自己的优势,无论是编程的效率还是执行速度

scala语言的介绍:

      scala 是一门多范式的编程语言,既面向对象、也是函数式编程。

      scala 运行在Java虚拟机上,并兼容现有的Java程序。

      scala 源代码被编译成Java字节码,所以它可以运行于JVM之上,并可以调用现有的Java类库

scala环境配置:    file----->Settings

下载好之后,重启IDEA

FIle--->New---->Project

Next--------------        按下图示意指定SDK路径(如果需要SDK文件,可以私信或评论),一直NEXT,一个Scala项目就创建完成了

新建Scala类时,会出现3个选项,选择Object(后续会说为什么) 

变量:

         变量:修饰的关键字var         var  a  =  "abc"

         常量:修饰的关键字val         val   b  =  "abc"

1.Any是所有类型的超类型,也称为顶级类型。
   Any有两个直接子类:AnyVal和AnyRef。
2.AnyVal代表值类型。有9个预定义的非空的值类型分别是:Double、Float、Long、Int、Short、Byte、Char、Unit和Boolean。
   Unit是不带任何意义的值类型,它仅有一个实例可以像这样声明:()。所有的函数必须有返回,所以说有时候Unit也是有用的返回类型。
3.AnyRef代表引用类型。所有非值类型都被定义为引用类型。
   在Scala中,每个用户自定义的类型都是AnyRef的子类型。
4.Null是所有引用类型的子类型(即AnyRef的任意子类型)。它有一个单例值由关键字null所定义。
5.Nothing是所有类型的子类型,也称为底部类型。没有一个值是Nothing类型的

类型转换:

//1)String 类型转换为Int
val age:String ="123"
println(age.toInt.getClass.getName)
//2)Int 类型转换为String
val b:Int =123
println(b.toString.getClass.getName)
//3)String类型转换为Float类型
val c:String ="123.123"
println(c.toFloat.getClass.getName)

main方法:

/* 
 * def     定义方法 
 * main    方法名字 
 * args    参数的名字 
 * Array[String]  参数类型,字符串数组
 * Unit    没有返回值,相当于java中的void 
 */
 def main(args: Array[String]): Unit = {  
 }

Scala是基于Java的,所以,两种语言的很多语法都是类似的,但Scala有一些Java没有的机制:懒加载就是其中一个

懒加载:

            Scala中使用关键字lazy来定义惰性变量,实现延迟加载(懒加载)。惰性变量只能是不可变变量(就是常量---val),并且只有在调用惰性变量时,才会去实例化这个变量

            lazy val 变量名:数据类型 = 值

插值器:

             字符串插值允许使用者将变量引用直接插入处理过的字面字符中。

var name = "小明"
var age = 18
var height = 1.808764
    
println("姓名是"+name +",年龄是"+age+",身高是"+height)

//s插值器 将字符串中变量替换为变量的值
println(s"姓名是 ${name}")
    
//f插值器 将小数格式化输出
println(f"身高是${height}%.2f")
    
println(f"姓名是${name} ,年龄是${age} ,身高是${height}%.2f")

//raw插值器 输出字符串原样,不进行转义
println(raw"a\nb\n\tc")

Scala语言接受键盘输入(Java键盘输入的是Scanner,在类中也可以使用,会自动识别为Java代码):

println("请输入姓名:")
val int = Console.readLine()
println("您的姓名是:"+int)

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值